[FFmpeg-devel] [PATCH 4/5] avformat/mov: add support for AV1 streams

James Almer jamrial at gmail.com
Thu Jul 19 18:16:27 EEST 2018


On 7/19/2018 9:57 AM, Francois Cartegnie wrote:
> Hi,
> 
> Sorry, can't reply to thread.
> 
>> +    if (version != 0) {
>> +        av_log(c->fc, AV_LOG_WARNING, "Unknown AV1 Codec Configuration Box version %d\n", version);
>> +        return 0;
>> +    }
>> +    avio_skip(pb, 3); /* flags */
>> +
>> +    avio_skip(pb, 1); /* reserved, initial_presentation_delay_present, initial_presentation_delay_minus_one */
>> +
>> +    ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size - 5);
> 
> Seems to me that using OBU only as internal extradata, unlike h264 or
> hevc, will only cause issues.
> 
> There's no version as a guarantee on which OBU should be found, and it
> implies parsing OBU just like with AnnexB.

Unlike avcc and hvcc, the spec didn't define a custom encapsulation for
av1c, but it does state which types should be found:

"The configOBUs field is expected to contain only OBU_SEQUENCE_HEADER
and OBU_METADATA when the metadata OBU is applicable to all the
associated samples"

Matroska has the same requirements.

> Parsing might also not be possible without accessing samples data when
> there's potentially zero OBU in DCR.

Steve Lhomme opened a issue[1] about it. The spec states "zero or more
OBUs" in av1c, whereas In Matroska the Sequence Header is guaranteed to
be present as they say "one or more OBUs".

Fwiw, in ffmpeg's case at least, libavformat will generate the internal
extradata on its own by extracting the first Sequence Header from the
bitstream if the demuxer didn't allocate it itself. This is what's done
for ivf and such containers.

> 
> I've raised the issue on the spec, as the DCR itself does not seems to
> contain enough extracted information, like profile for routing to a
> proper decoder.

Like you said, you're clearly expected to parse the Sequence Header OBU
in configOBUs. Profile is the very first value in it after the OBU header.

[1] https://github.com/AOMediaCodec/av1-isobmff/issues/46


More information about the ffmpeg-devel mailing list