At 2015-11-10 06:41:47, "Michael Niedermayer" <mich...@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.

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

Reply via email to