#11012(avformat:new): APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT
#11012: APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT ----------------------------------+--------------------------------------- Reporter: tobbez | Type: defect Status: new | Priority: normal Component: avformat | Version: unspecified Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ----------------------------------+--------------------------------------- The APNG decoder (more specifically `apng_read_packet` in libavformat/apngdec.c) incorrectly assumes an `fcTL` chunk must be ''immediately'' followed by either an `fdAT` or an `IDAT` chunk. In addition, when the `fdAT`/`IDAT` check fails, the input stream is not rewinded to the start of the chunk that follows the `fcTL` chunk, causing misleading log messages: "tag=ware (0x65726177) len=1399809652" in the output below ought to be "tag=tEXt (0x74584574) len=16". An example file can be created using exiftool on an existing APNG file (`exiftool -Software=example apng.png`). This produces a file where the first `fcTL` chunk is followed by a `tEXt` chunk. Such an example will be attached. How to reproduce: {{{ % ffmpeg -i example.png -f null /dev/null ffmpeg version N-115183-g02c032abcd Copyright (c) 2000-2024 the FFmpeg developers built with gcc 13 (13.2.1_p20240503 p15) configuration: libavutil 59. 17.100 / 59. 17.100 libavcodec 61. 5.103 / 61. 5.103 libavformat 61. 3.103 / 61. 3.103 libavdevice 61. 2.100 / 61. 2.100 libavfilter 10. 2.101 / 10. 2.101 libswscale 8. 2.100 / 8. 2.100 libswresample 5. 2.100 / 5. 2.100 [apng @ 0x55841a01a7c0] Could not find codec parameters for stream 0 (Video: apng, none, 64x64): unspecified pixel format Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, apng, from 'example.png': Duration: N/A, bitrate: N/A Stream #0:0: Video: apng, none, 64x64, 100k tbr, 100k tbn Stream mapping: Stream #0:0 -> #0:0 (apng (native) -> wrapped_avframe (native)) Press [q] to stop, [?] for help [apng @ 0x55841a01a7c0] In-stream tag=ware (0x65726177) len=1399809652 is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented. [apng @ 0x55841a01a7c0] If you want to help, upload a sample of this file to https://streams.videolan.org/upload/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org) [in#0/apng @ 0x55841a01a500] Error during demuxing: Not yet implemented in FFmpeg, patches welcome Cannot determine format of input 0:0 after EOF [vf#0:0 @ 0x55841a01cb80] Task finished with error code: -1094995529 (Invalid data found when processing input) [vf#0:0 @ 0x55841a01cb80] Terminating thread with return code -1094995529 (Invalid data found when processing input) [vost#0:0/wrapped_avframe @ 0x55841a01cfc0] Could not open encoder before EOF [vost#0:0/wrapped_avframe @ 0x55841a01cfc0] Task finished with error code: -22 (Invalid argument) [vost#0:0/wrapped_avframe @ 0x55841a01cfc0] Terminating thread with return code -22 (Invalid argument) [out#0/null @ 0x55841a01c940] Nothing was written into output file, because at least one of its streams received no packets. frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A Conversion failed! }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/11012> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#11012: APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT -------------------------------------+------------------------------------ Reporter: tobbez | Owner: (none) Type: defect | Status: new Priority: normal | Component: avformat Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------ Changes (by tobbez): * Attachment "example.png" added. -- Ticket URL: <https://trac.ffmpeg.org/ticket/11012> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#11012: APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT ------------------------------------+------------------------------------ Reporter: tobbez | Owner: (none) Type: defect | Status: new Priority: normal | Component: avformat Version: git-master | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ------------------------------------+------------------------------------ Changes (by tobbez): * version: unspecified => git-master -- Ticket URL: <https://trac.ffmpeg.org/ticket/11012#comment:1> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#11012: APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT -------------------------------------+------------------------------------- Reporter: tobbez | Owner: | devjeonghwan Type: defect | Status: open Priority: normal | Component: avformat Version: git-master | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 1 Analyzed by developer: 1 | -------------------------------------+------------------------------------- Changes (by devjeonghwan): * analyzed: 0 => 1 * owner: (none) => devjeonghwan * reproduced: 0 => 1 * status: new => open -- Ticket URL: <https://trac.ffmpeg.org/ticket/11012#comment:2> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#11012: APNG decoder incorrectly assumes fcTL chunk must be immediately followed by fdAT or IDAT -------------------------------------+------------------------------------- Reporter: tobbez | Owner: | devjeonghwan Type: defect | Status: closed Priority: normal | Component: avformat Version: git-master | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 1 Analyzed by developer: 1 | -------------------------------------+------------------------------------- Changes (by devjeonghwan): * resolution: => fixed * status: open => closed Comment: Fixed [https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20208 #20208] -- Ticket URL: <https://trac.ffmpeg.org/ticket/11012#comment:3> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg