[FFmpeg-devel] [PATCH] avformat/apngenc: use the stream parameters extradata if no updated one is made available

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Wed Nov 2 22:20:14 EET 2016


On 02.11.2016 21:10, Hendrik Leppkes wrote:
> On Wed, Nov 2, 2016 at 8:13 PM, Andreas Cadhalpun
> <andreas.cadhalpun at googlemail.com> wrote:
>> On 01.11.2016 23:10, Hendrik Leppkes wrote:
>>> Am 01.11.2016 17:17 schrieb "Andreas Cadhalpun" <
>>> andreas.cadhalpun at googlemail.com>:
>>>> Not again, but instead, as the extradata is then only transferred as side data.
>>>> That way it is again consistent between demuxer/decoder and encoder/muxer.
>>>>
>>>
>>> I don't think thats a good idea. Demuxers should fill the extradata field
>>> if any is present and required for decoding - some other decoder might want
>>> extradata for init or something, and that way you can accommodate it
>>> without having to wait for the first packet.
>>
>> Is this documented somewhere?
> 
> What documented?

You're claim that 'Demuxers should fill the extradata field'.

> This seems quite logical. If you have extradata, set extradata in codecpar

It's not logical to do this, if it's not necessary, e.g. for the apng demuxer.
It is only necessary if the decoder actually needs this information during
init, but the apng decoder does not.

>>> That's basically how all demuxers work, will extradata and if it can and
>>> does change just send an update notice.
>>
>> Requiring to use codecpar->extradata for passing this from demuxer to decoder,
>> while at the same time requiring to use AV_PKT_DATA_NEW_EXTRADATA side data
>> to pass this from muxer to encoder seems quite strange to me.
>>
> 
> encoders should also be able to just set extradata and the muxer read
> that, this is how many other encoders work.

That only works if it is set during write_header, setting it during
write_packet was broken by commit 5ef1959.

> I don't know how the apng muxer works, but maybe it also just pretends
> to be special.

It's special in that it doesn't set the extradata during write_header.

Best regards,
Andreas



More information about the ffmpeg-devel mailing list