[FFmpeg-devel] [PATCH v4 8/9] avcodec/cbs_h2645: vvc, do not skip nals for nuh_layer_id > 0

Andriy Gelman andriy.gelman at gmail.com
Sat Feb 6 09:40:55 EET 2021


On Sat, 06. Feb 11:30, Nuo Mi wrote:
> On Mon, Jan 25, 2021 at 10:21 PM Nuo Mi <nuomi2021 at gmail.com> wrote:
> 
> >
> > On Mon, Jan 25, 2021 at 10:17 PM Nuo Mi <nuomi2021 at gmail.com> wrote:
> >
> >> ---
> >>  libavcodec/cbs_h2645.c | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
> >> index 6f3abf6b0b..da541407cf 100644
> >> --- a/libavcodec/cbs_h2645.c
> >> +++ b/libavcodec/cbs_h2645.c
> >> @@ -494,8 +494,9 @@ static int
> >> cbs_h2645_fragment_add_nals(CodedBitstreamContext *ctx,
> >>          const H2645NAL *nal = &packet->nals[i];
> >>          AVBufferRef *ref;
> >>          size_t size = nal->size;
> >> +        enum AVCodecID codec_id = ctx->codec->codec_id;
> >>
> >> -        if (nal->nuh_layer_id > 0)
> >> +        if (codec_id != AV_CODEC_ID_VVC && nal->nuh_layer_id > 0)
> >>
> > Hi Mark,
> > Could you explain why we need this for other codecs?
> > thanks
> >
> 
> Hi Mark,
> Any insight on this?

If I remember correctly some of the parameter sets are parsed differently for
nuh_layer_id > 0 layers, which was not supported by cbs.

Just tried it again on a multi-layers stream and cbs errors out. I can forward
you the file if you want.

[trace_headers @ 0x56094c620440] Sequence Parameter Set
[trace_headers @ 0x555557c34440] 0           forbidden_zero_bit                                          0 = 0
[trace_headers @ 0x555557c34440] 1           nal_unit_type                                          100001 = 33
[trace_headers @ 0x555557c34440] 7           nuh_layer_id                                           000001 = 1
[trace_headers @ 0x555557c34440] 13          nuh_temporal_id_plus1                                     001 = 1
[trace_headers @ 0x555557c34440] 16          sps_video_parameter_set_id                               0000 = 0
[trace_headers @ 0x555557c34440] 20          sps_max_sub_layers_minus1                                 111 = 7
[trace_headers @ 0x555557c34440] sps_max_sub_layers_minus1 out of range: 7, but must be in [0,6].
[trace_headers @ 0x555557c34440] Failed to read unit 2 (type 33).
Error initializing bitstream filter: trace_headers
Error initializing output stream 0:0 -- 

-- 
Andriy


More information about the ffmpeg-devel mailing list