avcodec/dovi_rpuenc: slightly improve profile autodetection

In the absence of an RPU header, we can consult the colorspace tags to
make a more informed guess about whether we're looking at profile 5 or
profile 8.
release/7.1
Niklas Haas 7 months ago
parent ecea6ed3c9
commit 3e1b70383e
  1. 15
      libavcodec/dovi_rpuenc.c

@ -79,7 +79,20 @@ int ff_dovi_configure_ext(DOVIContext *s, AVCodecParameters *codecpar,
switch (codecpar->codec_id) {
case AV_CODEC_ID_AV1: dv_profile = 10; break;
case AV_CODEC_ID_H264: dv_profile = 9; break;
case AV_CODEC_ID_HEVC: dv_profile = hdr ? ff_dovi_guess_profile_hevc(hdr) : 8; break;
case AV_CODEC_ID_HEVC:
if (hdr) {
dv_profile = ff_dovi_guess_profile_hevc(hdr);
break;
}
/* This is likely to be proprietary IPTPQc2 */
if (codecpar->color_space == AVCOL_SPC_IPT_C2 ||
(codecpar->color_space == AVCOL_SPC_UNSPECIFIED &&
codecpar->color_trc == AVCOL_TRC_UNSPECIFIED))
dv_profile = 5;
else
dv_profile = 8;
break;
default:
/* No other encoder should be calling this! */
av_assert0(0);

Loading…
Cancel
Save