[FFmpeg-devel] [PATCH 3/3] avformat/webpenc: don't assume animated webp streams will have more than one packet

James Almer jamrial at gmail.com
Sun Apr 11 20:19:45 EEST 2021


On 4/11/2021 2:15 PM, Carl Eugen Hoyos wrote:
> Am So., 11. Apr. 2021 um 18:50 Uhr schrieb James Almer <jamrial at gmail.com>:
>>
>> On 4/11/2021 1:30 PM, Carl Eugen Hoyos wrote:
>>> Am So., 11. Apr. 2021 um 04:13 Uhr schrieb James Almer <jamrial at gmail.com>:
>>>>
>>>> The libwebp_animencoder returns a single packet with the entire animated
>>>> stream, as that's what the external library produces. As such, only ensure the
>>>> stream was produced by said encoder (or propagated by a demuxer, once support
>>>> is added) when attempting to write the requested loop value.
>>>>
>>>> Fixes ticket #9179.
>>>>
>>>> Signed-off-by: James Almer <jamrial at gmail.com>
>>>> ---
>>>>    libavformat/webpenc.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavformat/webpenc.c b/libavformat/webpenc.c
>>>> index ed8325c02d..ca4ffc4e2d 100644
>>>> --- a/libavformat/webpenc.c
>>>> +++ b/libavformat/webpenc.c
>>>> @@ -172,7 +172,7 @@ static int webp_write_trailer(AVFormatContext *s)
>>>>        WebpContext *w = s->priv_data;
>>>>
>>>>        if (w->using_webp_anim_encoder) {
>>>> -        if ((w->frame_count > 1) && w->loop) {  // Write loop count.
>>>> +        if (w->loop) {  // Write loop count.
>>>>                avio_seek(s->pb, 42, SEEK_SET);
>>>>                avio_wl16(s->pb, w->loop);
>>>
>>> Sorry for not understanding this:
>>> Why is the seek necessary at all?
>>
>> If we write the loop value in webp_write_trailer() then there's no other
>> way. But if we instead attempt to write it in webp_write_packet() then a
>> seek wouldn't be needed, no.
> 
> If I don't miss anything, the value should not be written in
> webp_write_trailer() then.

Patch welcome, of course.

> 
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list