Message ID | 20240409125914.61149-5-ffmpeg@haasn.xyz |
---|---|
State | New |
Headers | show |
Series | avcodec: add Dolby Vision encoding | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Niklas Haas: > From: Niklas Haas <git@haasn.dev> > > This is based on HEVC only, H.264/AV1 use their own (hopefully correctly > signalled) profiles. > --- > libavcodec/dovi_rpu.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/dovi_rpu.c b/libavcodec/dovi_rpu.c > index 267e52ceb66..4da711d763e 100644 > --- a/libavcodec/dovi_rpu.c > +++ b/libavcodec/dovi_rpu.c > @@ -121,7 +121,8 @@ int ff_dovi_attach_side_data(DOVIContext *s, AVFrame *frame) > return 0; > } > > -static int guess_profile(const AVDOVIRpuDataHeader *hdr) > +/* Note: Only works for HEVC */ > +static int guess_hevc_profile(const AVDOVIRpuDataHeader *hdr) > { > switch (hdr->vdr_rpu_profile) { > case 0: > @@ -510,7 +511,7 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, > use_prev_vdr_rpu = get_bits1(gb); > use_nlq = (hdr->rpu_format & 0x700) == 0 && !hdr->disable_residual_flag; > > - profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_profile(hdr); > + profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_hevc_profile(hdr); > if (profile == 5 && use_nlq) { > av_log(s->logctx, AV_LOG_ERROR, "Profile 5 RPUs should not use NLQ\n"); > goto fail; Is guess_hevc_profile only called for HEVC? - Andreas
On Tue, 09 Apr 2024 17:37:32 +0200 Andreas Rheinhardt <andreas.rheinhardt@outlook.com> wrote: > Niklas Haas: > > From: Niklas Haas <git@haasn.dev> > > > > This is based on HEVC only, H.264/AV1 use their own (hopefully correctly > > signalled) profiles. > > --- > > libavcodec/dovi_rpu.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/libavcodec/dovi_rpu.c b/libavcodec/dovi_rpu.c > > index 267e52ceb66..4da711d763e 100644 > > --- a/libavcodec/dovi_rpu.c > > +++ b/libavcodec/dovi_rpu.c > > @@ -121,7 +121,8 @@ int ff_dovi_attach_side_data(DOVIContext *s, AVFrame *frame) > > return 0; > > } > > > > -static int guess_profile(const AVDOVIRpuDataHeader *hdr) > > +/* Note: Only works for HEVC */ > > +static int guess_hevc_profile(const AVDOVIRpuDataHeader *hdr) > > { > > switch (hdr->vdr_rpu_profile) { > > case 0: > > @@ -510,7 +511,7 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, > > use_prev_vdr_rpu = get_bits1(gb); > > use_nlq = (hdr->rpu_format & 0x700) == 0 && !hdr->disable_residual_flag; > > > > - profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_profile(hdr); > > + profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_hevc_profile(hdr); > > if (profile == 5 && use_nlq) { > > av_log(s->logctx, AV_LOG_ERROR, "Profile 5 RPUs should not use NLQ\n"); > > goto fail; > > Is guess_hevc_profile only called for HEVC? Yes. All non-HEVC codecs explicitly override s->cfg.dv_profile before calling into this function. But probably we should document that more clearly somewhere. > > - Andreas > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavcodec/dovi_rpu.c b/libavcodec/dovi_rpu.c index 267e52ceb66..4da711d763e 100644 --- a/libavcodec/dovi_rpu.c +++ b/libavcodec/dovi_rpu.c @@ -121,7 +121,8 @@ int ff_dovi_attach_side_data(DOVIContext *s, AVFrame *frame) return 0; } -static int guess_profile(const AVDOVIRpuDataHeader *hdr) +/* Note: Only works for HEVC */ +static int guess_hevc_profile(const AVDOVIRpuDataHeader *hdr) { switch (hdr->vdr_rpu_profile) { case 0: @@ -510,7 +511,7 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, use_prev_vdr_rpu = get_bits1(gb); use_nlq = (hdr->rpu_format & 0x700) == 0 && !hdr->disable_residual_flag; - profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_profile(hdr); + profile = s->cfg.dv_profile ? s->cfg.dv_profile : guess_hevc_profile(hdr); if (profile == 5 && use_nlq) { av_log(s->logctx, AV_LOG_ERROR, "Profile 5 RPUs should not use NLQ\n"); goto fail;
From: Niklas Haas <git@haasn.dev> This is based on HEVC only, H.264/AV1 use their own (hopefully correctly signalled) profiles. --- libavcodec/dovi_rpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)