[FFmpeg-devel] [PATCH 0/3] add vvc raw demuxer

Mark Thompson sw at jkqxz.net
Mon Dec 14 22:44:01 EET 2020


On 14/12/2020 13:31, Nuo Mi wrote:
> Hi Mark,
> I have almost done the cbs for sps, pps, and slice header. I will start to
> implement the parser.

This looks fun :)

> Few questions for you:
> 1. We need over-read some nals to detect the frame boundaries. But those
> nals may switch/replace sps/pps. Do we need to use an output cbs and get
> frames from the output cbs?

I'm not seeing where this can happen - if you see a new parameter set then you must be in a new AU so you don't parse it, while a new VCL NAL as part of a new frame with no PS before it must have a parsable header?  (Or am I missing some problematic case?)

> 2. We can't handle an incompleted nal in current cbs.
> https://github.com/FFmpeg/FFmpeg/blob/03c8fe49ea3f2a2444607e541dff15a1ccd7f0c2/libavcodec/h2645_parse.c#L437,
> do we have a plan to fix it? What's your suggstion for the frame split?

I'm unsure what the question is.  You will always need to keep reading until you split a valid NAL unit which isn't in the current AU (noting that a slice is the last slice in the current frame is never sufficient, because suffixes might follow).

> 3. How to well test the cbs?

Passthrough is the best initial test, by making an h266_metadata bsf (even if it has no options).  The existing test coverage in FATE of CBS is primarily driven by this - for H.26[45], the input streams there are a subset of the H.26[45].1 conformance test streams chosen to cover as much of the header space as possible.

I recommend enabling the write support ASAP (by adding the second include of cbs_h266_syntax_template.c), because the double build can shake out other problems too.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list