diff mbox series

[FFmpeg-devel,3/4] lavc/vvc_parser: Fixed the has_b_frames setting

Message ID 20240419134711.3824735-3-mypopy@gmail.com
State Accepted
Commit 50b8666dc695b1d61ecc1ff2c4fbac2f466f0f65
Headers show
Series [FFmpeg-devel,1/4] lavc/vvc_parser: Remove max_b_frames setting | expand

Checks

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

Commit Message

mypopy@gmail.com April 19, 2024, 1:47 p.m. UTC
From: Jun Zhao <mypopydev@gmail.com>

has_b_frames used in decoder for size of the frame reordering
buffer, setting this field from dpb_max_num_reorder_pics.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
---
 libavcodec/vvc_parser.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Nuo Mi April 20, 2024, 3:49 a.m. UTC | #1
On Fri, Apr 19, 2024 at 9:55 PM Jun Zhao <mypopy@gmail.com> wrote:

> From: Jun Zhao <mypopydev@gmail.com>
>
> has_b_frames used in decoder for size of the frame reordering
> buffer, setting this field from dpb_max_num_reorder_pics.
>
> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
> ---
>  libavcodec/vvc_parser.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/vvc_parser.c b/libavcodec/vvc_parser.c
> index a0e10e1a7c..5373875aae 100644
> --- a/libavcodec/vvc_parser.c
> +++ b/libavcodec/vvc_parser.c
> @@ -185,8 +185,8 @@ static void set_parser_ctx(AVCodecParserContext *s,
> AVCodecContext *avctx,
>      avctx->color_range =
>          sps->vui.vui_full_range_flag ? AVCOL_RANGE_JPEG :
> AVCOL_RANGE_MPEG;
>
> -    avctx->has_b_frames = (sps->sps_max_sublayers_minus1 + 1) > 2 ? 2 :
> -                           sps->sps_max_sublayers_minus1;
> +    avctx->has_b_frames =
> +
> sps->sps_dpb_params.dpb_max_num_reorder_pics[sps->sps_max_sublayers_minus1];
>
Should we relocate this to the decoder? Other codecs typically set this
parameter in the decoder.

thank you

>
>      if (sps->sps_ptl_dpb_hrd_params_present_flag &&
>          sps->sps_timing_hrd_params_present_flag) {
> --
> 2.25.1
>
> _______________________________________________
> 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".
>
mypopy@gmail.com April 21, 2024, 2:51 a.m. UTC | #2
On Sat, Apr 20, 2024 at 11:50 AM Nuo Mi <nuomi2021@gmail.com> wrote:
>
> On Fri, Apr 19, 2024 at 9:55 PM Jun Zhao <mypopy@gmail.com> wrote:
>
> > From: Jun Zhao <mypopydev@gmail.com>
> >
> > has_b_frames used in decoder for size of the frame reordering
> > buffer, setting this field from dpb_max_num_reorder_pics.
> >
> > Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
> > ---
> >  libavcodec/vvc_parser.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavcodec/vvc_parser.c b/libavcodec/vvc_parser.c
> > index a0e10e1a7c..5373875aae 100644
> > --- a/libavcodec/vvc_parser.c
> > +++ b/libavcodec/vvc_parser.c
> > @@ -185,8 +185,8 @@ static void set_parser_ctx(AVCodecParserContext *s,
> > AVCodecContext *avctx,
> >      avctx->color_range =
> >          sps->vui.vui_full_range_flag ? AVCOL_RANGE_JPEG :
> > AVCOL_RANGE_MPEG;
> >
> > -    avctx->has_b_frames = (sps->sps_max_sublayers_minus1 + 1) > 2 ? 2 :
> > -                           sps->sps_max_sublayers_minus1;
> > +    avctx->has_b_frames =
> > +
> > sps->sps_dpb_params.dpb_max_num_reorder_pics[sps->sps_max_sublayers_minus1];
> >
> Should we relocate this to the decoder? Other codecs typically set this
> parameter in the decoder.
>
I think the part that needs to be refactored is like the 264/265
decoder, but before the refactoring, we need to fix the issue first.
> thank you
>
> >
> >      if (sps->sps_ptl_dpb_hrd_params_present_flag &&
> >          sps->sps_timing_hrd_params_present_flag) {
> > --
> > 2.25.1
> >
Nuo Mi April 21, 2024, 1:12 p.m. UTC | #3
On Sun, Apr 21, 2024 at 10:51 AM mypopy@gmail.com <mypopy@gmail.com> wrote:

> On Sat, Apr 20, 2024 at 11:50 AM Nuo Mi <nuomi2021@gmail.com> wrote:
> >
> > On Fri, Apr 19, 2024 at 9:55 PM Jun Zhao <mypopy@gmail.com> wrote:
> >
> > > From: Jun Zhao <mypopydev@gmail.com>
> > >
> > > has_b_frames used in decoder for size of the frame reordering
> > > buffer, setting this field from dpb_max_num_reorder_pics.
> > >
> > > Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
> > > ---
> > >  libavcodec/vvc_parser.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/libavcodec/vvc_parser.c b/libavcodec/vvc_parser.c
> > > index a0e10e1a7c..5373875aae 100644
> > > --- a/libavcodec/vvc_parser.c
> > > +++ b/libavcodec/vvc_parser.c
> > > @@ -185,8 +185,8 @@ static void set_parser_ctx(AVCodecParserContext *s,
> > > AVCodecContext *avctx,
> > >      avctx->color_range =
> > >          sps->vui.vui_full_range_flag ? AVCOL_RANGE_JPEG :
> > > AVCOL_RANGE_MPEG;
> > >
> > > -    avctx->has_b_frames = (sps->sps_max_sublayers_minus1 + 1) > 2 ? 2
> :
> > > -                           sps->sps_max_sublayers_minus1;
> > > +    avctx->has_b_frames =
> > > +
> > >
> sps->sps_dpb_params.dpb_max_num_reorder_pics[sps->sps_max_sublayers_minus1];
> > >
> > Should we relocate this to the decoder? Other codecs typically set this
> > parameter in the decoder.
> >
> I think the part that needs to be refactored is like the 264/265
> decoder, but before the refactoring, we need to fix the issue first.
>
OK, tracked with https://github.com/ffvvc/FFmpeg/issues/217 in case we
forget it

> > thank you
> >
> > >
> > >      if (sps->sps_ptl_dpb_hrd_params_present_flag &&
> > >          sps->sps_timing_hrd_params_present_flag) {
> > > --
> > > 2.25.1
> > >
> _______________________________________________
> 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 mbox series

Patch

diff --git a/libavcodec/vvc_parser.c b/libavcodec/vvc_parser.c
index a0e10e1a7c..5373875aae 100644
--- a/libavcodec/vvc_parser.c
+++ b/libavcodec/vvc_parser.c
@@ -185,8 +185,8 @@  static void set_parser_ctx(AVCodecParserContext *s, AVCodecContext *avctx,
     avctx->color_range =
         sps->vui.vui_full_range_flag ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
 
-    avctx->has_b_frames = (sps->sps_max_sublayers_minus1 + 1) > 2 ? 2 :
-                           sps->sps_max_sublayers_minus1;
+    avctx->has_b_frames =
+        sps->sps_dpb_params.dpb_max_num_reorder_pics[sps->sps_max_sublayers_minus1];
 
     if (sps->sps_ptl_dpb_hrd_params_present_flag &&
         sps->sps_timing_hrd_params_present_flag) {