[FFmpeg-devel] Regression problem

JULIAN GARDNER joolzg at btinternet.com
Wed Sep 24 14:48:27 CEST 2014


> From: JULIAN GARDNER <joolzg at btinternet.com>

>To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org> 
>Sent: Tuesday, 23 September 2014, 13:37
>Subject: Re: [FFmpeg-devel] Regression problem
> 
>
>----- Original Message -----
>> From: Michael Niedermayer <michaelni at gmx.at>
>> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
>> Cc: 
>> Sent: Tuesday, 23 September 2014, 12:24
>> Subject: Re: [FFmpeg-devel] Regression problem
>> 
>> On Tue, Sep 23, 2014 at 09:27:57AM +0100, JULIAN GARDNER wrote:
>>>  I seem to be having problems using the ff_load_image routine, with a git 
>> pulled build from the beginning of the week, which used to work but is now 
>> giving me "failed to decode image file", and this is on a png that has 
>> been in use for over a year,
>>> 
>>>  The code is is based on VSRC_TESTSRC with an addition call to this code
>>> 
>>>  static int load_image(uint8_t **image_data, int *w, int *h, int *stride,
>>>                       const char *filename, void *log_ctx)
>>>  {
>>>      int ret;
>>>      enum AVPixelFormat pix_fmt;
>>>      uint8_t *src_data[4], *dst_data[4];
>>>      int src_linesize[4], dst_linesize[4];
>>> 
>>>      av_log( NULL, AV_LOG_WARNING, "load_image %s\n", 
>> filename);
>>> 
>>>      /* load image from file */
>>>      if ((ret = ff_load_image(src_data, src_linesize, w, h, &pix_fmt, 
>> filename, log_ctx)) < 0)
>>>          return ret;
>>> 
>>>      if ((ret = ff_scale_image(dst_data, dst_linesize, *w, *h, PIXEL_FORMAT,
>>>                                src_data, src_linesize, *w, *h, pix_fmt,
>>>                                log_ctx)) < 0)
>>>          goto end;
>>> 
>>>      *stride = dst_linesize[0];
>>> 
>>>      /* copy image_data to a newly allocated array */
>>>      *image_data = av_malloc(*stride * *h);
>>>      if (!*image_data)
>>>          ret = AVERROR(ENOMEM);
>>>      av_image_copy_plane(*image_data, *stride, dst_data[0], dst_linesize[0], 
>> *w*4, *h);
>>>  end:
>>>      av_free(src_data[0]);
>>>      av_free(dst_data[0]);
>>> 
>>>      return ret;
>>>  }
>>> 
>>> 
>>>  This used to work but now as I have said give the error message about not 
>> being able to decode
>>> 
>>>  There is nothing in the log, even with  as "-loglevel debug"
>>> 
>>>  load_image /home/encoder/images/Logo640x360.png
>>>  [AVIOContext @ 0x7fdcf8002580] Statistics: 3713 bytes read, 0 seeks
>>>  [libx264 @ 0x2c63320] frame= 322 QP=12.00 NAL=2 Slice:P Poc:144 I:15   
>> P:524  SKIP:381  size=14355 bytes
>>>  [Parsed_osd_0 @ 0x2c3b200] Failed to decode image from file
>>>  [Parsed_osd_0 @ 0x2c3b200] Error loading image file 
>> '/home/encoder/images/Logo640x360.png'
>> 
>> how can this be reproduced ?
>> can you share the png file ?
>> 
>
>It happens with any png, i just created a simple 100x100 png in gimp and this also fails
>
>joolz
>


Started debgging the code and found that the return from the pngdec.c decode_frame is ok, data decoded and got_packet set to 1, image size if correct.

So looks like it is somewhere further down the chain.

joolz


More information about the ffmpeg-devel mailing list