[FFmpeg-devel] [PATCH v2] avcodec: add an AV1 parser

Derek Buitenhuis derek.buitenhuis at gmail.com
Wed Oct 3 16:38:36 EEST 2018


On 03/10/2018 14:26, James Almer wrote:
>> Shouldn't this be set at the bottom of this block (since parsing can fail)?
> 
> If extradata parsing fails and we bail out without setting this first,
> no packet will ever be parsed since this runs first thing every time.
> 
> A better API would allow us to check it during init(), like in the
> decoder and bitstream filter ones, but that's not the case here.

OK, yeah, that's a bit meh, but I see the point.

>> Not strictly related to this patch, and not a blocker, but is it not
>> about time the API gains the ability to mark frames with more clarity
>> than just "I"? H.264, HEVC, etc. also have this issue (e.g. I vs IDR,
>> and HEVC's many times of RAPs). AV_PICTURE_TYPE_SI is kinda related,
>> I guess, but not exactly what I mean.

[...]

>> I assume we're not going to mark alt-refs in any special way since
>> they're combined in one packet with a visible frame?
> 
> Exactly. They are handled in the following packets, when the visible
> frame is a show_existing_frame one pointing to them.

[...]

>>> +        ctx->picture_structure = AV_PICTURE_STRUCTURE_FRAME;
>>
>> Any reason we just don't always set this at the top of the function?
> 
> Because the parsing can fail, and i figured it was nicer to keep it as
> the default AV_PICTURE_STRUCTURE_UNKNOWN in those cases.

Fair enough.
>>> +        av_assert2(ctx->format != AV_PIX_FMT_NONE);
>>
>> I assume ctx->bit_depth will always be set to something valid.
> 
> If you look at how i set ctx->format, it depends on the values of
> color->subsampling_x and color->subsampling_y. If for whatever reason
> cbs_av1 wrongly sets the former as 0 and the latter as 1 (which is
> invalid), the lookup table will return AV_PIX_FMT_NONE. This assert is
> to make sure that doesn't happen, as it'd be an internal bug.
> 
> I can remove it if you prefer, but by being av_assert2 it will not run
> outside of builds purposely enabling level 2 asserts.

I have no strong opinon.

As an aside, where does HDR metadata fit into all of this?

- Derek


More information about the ffmpeg-devel mailing list