[FFmpeg-devel] [PATCH] avcodec/gifdec: skip data lzw consumed

Paul B Mahol onemda at gmail.com
Tue Nov 10 12:59:12 CET 2015


On 11/10/15, nihui <shuizhuyuanluo at 126.com> wrote:
>
> At 2015-11-10 06:41:47, "Michael Niedermayer" <michael at niedermayer.cc>
> wrote:
>>On Sat, Nov 07, 2015 at 10:23:17PM +0800, Ni Hui wrote:
>>> fix the return code value of avcodec_decode_video2 for gif decoding,
>>> which should be the consumed data length.
>>>
>>> ---
>>>  libavcodec/gifdec.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c
>>> index 9f2e6eb..5bcb176 100644
>>> --- a/libavcodec/gifdec.c
>>> +++ b/libavcodec/gifdec.c
>>> @@ -295,6 +295,8 @@ static int gif_read_image(GifState *s, AVFrame
>>> *frame)
>>>      /* read the garbage data until end marker is found */
>>>      ff_lzw_decode_tail(s->lzw);
>>>
>>> +    bytestream2_skipu(&s->gb, bytestream2_get_bytes_left(&s->gb));
>>
>>ff_lzw_decode_tail() could consume less than the whole if FF_LZW_GIF
>>is set
>>so this doesnt seem entirely correct unless iam missing something
>>
>
> yes, it could be less than the whole
> however, we have to add ff_lzw_cur_ptr() or something like
> ff_lzw_consumed_len() if the real bytes lzw consumed needs to be retrieved
> from s->lzw
> such solution is obsolete for
> http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=3fd60d804996031ceaba9cad0b38652b92551eb0
>
> because the whole buffer is passed into ff_lzw_decode_init() anyway no
> matter lzw uses it all or not,
> so it seems ok to just regard all buffer as consumed from the view of gif
> decoder, and that's simple.

Can't ff_lzw_decode_tail be changed to return number of consumed bytes?

>
> best wishes
> nihui
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list