[FFmpeg-devel] [PATCH] avformat/apngdec: transmit all the chunks between consecutive fcTL ones.

Benoit Fouet benoit.fouet at free.fr
Tue Nov 25 10:18:56 CET 2014


Hi,

----- Mail original -----
> On 24/11/14 12:12 PM, Benoit Fouet wrote:
> > In order to support multiple IDAT of fdAT chunks following an fcTL
> > one,
> > transmit all the chunks between two fcTL ones (or between fcTL and
> > IEND
> > one).
> 
> Using one of the samples from
> https://people.mozilla.org/~dolske/apng/demo.html
> 
> $ ./ffmpeg -i chompy2.png chompy2.mp4 -loglevel debug
> 
> [...]
> 
> Input #0, apng, from 'chompy2.png':
>   Duration: N/A, bitrate: N/A
>     Stream #0:0: Video: apng, rgba, 166x120, 14.58 fps, 10 tbr, 90k
>     tbn, 90k tbc
> Output #0, mp4, to 'chompy2.mp4':
>   Metadata:
>     encoder         : Lavf56.15.100
>     Stream #0:0, 0, 1/10240: Video: mpeg4 ( [0][0][0] / 0x0020),
>     yuv420p, 166x120, 1/10, q=2-31, 200 kb/s, 10 fps, 10240 tbn, 10
>     tbc
>     Metadata:
>       encoder         : Lavc56.13.100 mpeg4
> Stream mapping:
>   Stream #0:0 -> #0:0 (apng (native) -> mpeg4 (native))
> Press [q] to stop, [?] for help
> *** dropping frame 8 from stream 0 at ts 5
> *** dropping frame 10 from stream 0 at ts 7
> *** dropping frame 12 from stream 0 at ts 9
> *** dropping frame 14 from stream 0 at ts 11
> [output stream 0:0 @ 0000000000317a20] EOF on sink link output stream
> 0:0:default.
> No more output streams to write to, finishing.
> frame=   16 fps=0.0 q=2.3 Lsize=      64kB time=00:00:01.60 bitrate=
> 328.6kbits/s dup=0 drop=5
> video:63kB audio:0kB subtitle:0kB other streams:0kB global
> headers:0kB muxing overhead: 1.433775%
> Input file #0 (chompy2.png):
>   Input stream #0:0 (video): 21 packets read (288248 bytes); 21
>   frames decoded;
>   Total: 21 packets (288248 bytes) demuxed
> Output file #0 (chompy2.mp4):
>   Output stream #0:0 (video): 16 frames encoded; 16 packets muxed
>   (64794 bytes);
>   Total: 16 packets (64794 bytes) muxed
> 23 frames successfully decoded, 0 decoding errors
> 
> I fixed this by using time_base instead of r_frame_rate in
> decode_fctl_chunk, but i'm not sure
> if that's correct either because it's changed after reading every
> frame, and in this one apng
> file the last frame has a different delay_den and delay_num values
> than in every previous frame.
> 

Please send a patch, if all works as before, with the case above being fixed, I can only think as it being beneficial.

-- 
Ben


More information about the ffmpeg-devel mailing list