[FFmpeg-devel] FFmpeg 2.8

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Mon Aug 31 14:19:02 CEST 2015


Hi Hendrik,

On 31.08.2015 01:29, Hendrik Leppkes wrote:
> On Mon, Aug 31, 2015 at 12:15 AM, Andreas Cadhalpun
> <andreas.cadhalpun at googlemail.com> wrote:
>> Before the release we should decide what to do with the asf_o demuxer.
>> Since it still crashes often, it's probably best to just remove it.
>>
>> Does someone want to keep it?
> 
> Yes, I want to keep it.

Then you should get the crashes fixed.

> It works much better for me than the old one.

At least the old one doesn't crash.

> Please report or fix crashes, instead of giving out such blanket statements.

Please fuzz-test the code thoroughly, instead of assuming it doesn't crash.

$ for f in ../crash-asf_o/id*; do echo -e "\n\n\n *** $f ***\n\n\n"; gdb --batch -ex r -ex bt -ex q --args ./ffmpeg_g -threads 1 -f asf_o -i "$f" -threads 1 -f null /dev/null -hide_banner; done



 *** ../crash-asf_o/id_5aa30f2b43644f234d145bb6bdf63b42327e7bec.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
*** Error in `./ffmpeg_g': corrupted double-linked list: 0x0000000001ab8c70 ***

Program received signal SIGABRT, Aborted.
0x00007ffff60a8107 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
#0  0x00007ffff60a8107 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff60a94e8 in __GI_abort () at abort.c:89
#2  0x00007ffff60e6214 in __libc_message (do_abort=do_abort at entry=1, fmt=fmt at entry=0x7ffff61d9000 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff60eb9ee in malloc_printerr (action=1, str=0x7ffff61d5084 "corrupted double-linked list", ptr=<optimized out>) at malloc.c:4996
#4  0x00007ffff60ebcac in malloc_consolidate (av=av at entry=0x7ffff6416620 <main_arena>) at malloc.c:4165
#5  0x00007ffff60ecef8 in _int_malloc (av=av at entry=0x7ffff6416620 <main_arena>, bytes=bytes at entry=8272) at malloc.c:3423
#6  0x00007ffff60ee1cb in _int_memalign (av=av at entry=0x7ffff6416620 <main_arena>, alignment=alignment at entry=32, bytes=bytes at entry=8192) at malloc.c:4403
#7  0x00007ffff60ef504 in _mid_memalign (alignment=alignment at entry=32, bytes=8192, address=<optimized out>) at malloc.c:3106
#8  0x00007ffff60f1022 in __posix_memalign (memptr=memptr at entry=0x7fffffffd398, alignment=alignment at entry=32, size=<optimized out>) at malloc.c:5018
#9  0x0000000000dd66a7 in av_malloc (size=size at entry=8192) at libavutil/mem.c:97
#10 0x00000000005378cf in asf_read_metadata_obj (s=0x1ab8560, g=<optimized out>) at libavformat/asfdec_o.c:586
#11 0x0000000000536d00 in detect_unknown_subobject (size=<optimized out>, offset=<optimized out>, s=0x1ab8560) at libavformat/asfdec_o.c:1647
#12 asf_read_unknown (s=0x1ab8560, g=<optimized out>) at libavformat/asfdec_o.c:187
#13 0x0000000000537d69 in asf_read_header (s=0x1ab8560) at libavformat/asfdec_o.c:1698
#14 0x00000000006493d3 in avformat_open_input (ps=ps at entry=0x7fffffffd618, filename=filename at entry=0x7fffffffe586 "../crash-asf_o/id_5aa30f2b43644f234d145bb6bdf63b42327e7bec.asf", fmt=fmt at entry=0x13e2100 <ff_asf_o_demuxer>, options=0x1ab8128) at libavformat/utils.c:473
#15 0x000000000047ab5d in open_input_file (o=o at entry=0x7fffffffd8e0, filename=<optimized out>) at ffmpeg_opt.c:925
#16 0x000000000047c0e8 in open_files (inout=0xe849bf "input", open_file=0x4794e0 <open_input_file>, l=<optimized out>, l=<optimized out>) at ffmpeg_opt.c:2910
#17 ffmpeg_parse_options (argc=argc at entry=13, argv=argv at entry=0x7fffffffe238) at ffmpeg_opt.c:2947
#18 0x000000000046cde7 in main (argc=13, argv=0x7fffffffe238) at ffmpeg.c:4143
A debugging session is active.

	Inferior 1 [process 13825] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_73048e331a6086a01b58e65c50e0528d5592e82e.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Input #0, asf_o, from '../crash-asf_o/id_73048e331a6086a01b58e65c50e0528d5592e82e.asf':
  Metadata:
    creation_time   : 1970-01-01 00:00:00
    WM/EncodingSettings: Lavf56.25.101
  Duration: 00:00:00.12, start: 0.000000, bitrate: 356 kb/s
    Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le(10 bpc), 16x9, 1k tbr, 1k tbn, 1k tbc
Output #0, null, to '/dev/null':
  Metadata:
    WM/EncodingSettings: Lavf56.25.101
    encoder         : Lavf56.40.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le(10 bpc), 16x9, q=2-31, 200 kb/s, 1k fps, 1k tbn, 1k tbc
    Metadata:
      encoder         : Lavc56.59.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (r10k (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[null @ 0x1ac4ec0] Encoder did not produce proper pts, making some up.
[asf_o @ 0x1ab8560] Error: invalid buffer size, pay_len 1496, data size left -2122219135.
../crash-asf_o/id_73048e331a6086a01b58e65c50e0528d5592e82e.asf: Invalid data found when processing input
Error while decoding stream #0:0: Invalid argument

Program received signal SIGSEGV, Segmentation fault.
wipe_side_data (frame=<optimized out>) at libavutil/frame.c:128
128	        free_side_data(&frame->side_data[i]);
#0  wipe_side_data (frame=<optimized out>) at libavutil/frame.c:128
#1  av_frame_unref (frame=0x1ac4660) at libavutil/frame.c:471
#2  0x0000000000485da9 in do_video_out (s=0x1ac4ec0, ost=ost at entry=0x1ac5d60, next_picture=next_picture at entry=0x0, sync_ipts=<optimized out>, sync_ipts at entry=-9.2233720368547758e+18) at ffmpeg.c:1248
#3  0x000000000048a926 in reap_filters (flush=flush at entry=1) at ffmpeg.c:1349
#4  0x000000000046e6ff in transcode_from_filter (best_ist=<synthetic pointer>, graph=0x1ac66c0) at ffmpeg.c:3869
#5  transcode_step () at ffmpeg.c:3920
#6  transcode () at ffmpeg.c:3982
#7  main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4165
A debugging session is active.

	Inferior 1 [process 15107] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_8218da6d981f8c59816ac61dfeb2c474e1fd800f.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Input #0, asf_o, from '../crash-asf_o/id_8218da6d981f8c59816ac61dfeb2c474e1fd800f.asf':
  Metadata:
    creation_time   : 1970-01-01 00:00:00
    WM/EncodingSettings: Lavf56.25.101
  Duration: N/A, start: -991057773.423000, bitrate: N/A
    Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le(10 bpc), 17x22, 1k tbr, 1k tbn, 1k tbc
Output #0, null, to '/dev/null':
  Metadata:
    WM/EncodingSettings: Lavf56.25.101
    encoder         : Lavf56.40.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le(10 bpc), 17x22, q=2-31, 200 kb/s, 1k fps, 1k tbn, 1k tbc
    Metadata:
      encoder         : Lavc56.59.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (r10k (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[null @ 0x1ac4ec0] Encoder did not produce proper pts, making some up.
[asf_o @ 0x1ab8560] Error: invalid buffer size, pay_len 32857, data size left -2122219135.
../crash-asf_o/id_8218da6d981f8c59816ac61dfeb2c474e1fd800f.asf: Invalid data found when processing input

Program received signal SIGSEGV, Segmentation fault.
avio_seek (s=0xe160f2bfa5003076, offset=offset at entry=0, whence=whence at entry=1) at libavformat/aviobuf.c:215
215	    buffer_size = s->buf_end - s->buffer;
#0  avio_seek (s=0xe160f2bfa5003076, offset=offset at entry=0, whence=whence at entry=1) at libavformat/aviobuf.c:215
#1  0x000000000046d11a in avio_tell (s=<optimized out>) at libavformat/avio.h:392
#2  need_output () at ffmpeg.c:3342
#3  transcode () at ffmpeg.c:3977
#4  main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4165
A debugging session is active.

	Inferior 1 [process 16465] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_8ac06ab3e0a66d12f7d488d15203193d5c3c1ffc.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
*** Error in `./ffmpeg_g': free(): invalid next size (fast): 0x0000000001ab8f60 ***

Program received signal SIGABRT, Aborted.
0x00007ffff60a8107 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
#0  0x00007ffff60a8107 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff60a94e8 in __GI_abort () at abort.c:89
#2  0x00007ffff60e6214 in __libc_message (do_abort=do_abort at entry=1, fmt=fmt at entry=0x7ffff61d9000 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff60eb9ee in malloc_printerr (action=1, str=0x7ffff61d91c0 "free(): invalid next size (fast)", ptr=<optimized out>) at malloc.c:4996
#4  0x00007ffff60ec6f6 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3840
#5  0x0000000000537869 in asf_read_metadata_obj (s=0x1ab8560, g=<optimized out>) at libavformat/asfdec_o.c:606
#6  0x0000000000536d00 in detect_unknown_subobject (size=<optimized out>, offset=<optimized out>, s=0x1ab8560) at libavformat/asfdec_o.c:1647
#7  asf_read_unknown (s=0x1ab8560, g=<optimized out>) at libavformat/asfdec_o.c:187
#8  0x0000000000537d69 in asf_read_header (s=0x1ab8560) at libavformat/asfdec_o.c:1698
#9  0x00000000006493d3 in avformat_open_input (ps=ps at entry=0x7fffffffd618, filename=filename at entry=0x7fffffffe586 "../crash-asf_o/id_8ac06ab3e0a66d12f7d488d15203193d5c3c1ffc.asf", fmt=fmt at entry=0x13e2100 <ff_asf_o_demuxer>, options=0x1ab8128) at libavformat/utils.c:473
#10 0x000000000047ab5d in open_input_file (o=o at entry=0x7fffffffd8e0, filename=<optimized out>) at ffmpeg_opt.c:925
#11 0x000000000047c0e8 in open_files (inout=0xe849bf "input", open_file=0x4794e0 <open_input_file>, l=<optimized out>, l=<optimized out>) at ffmpeg_opt.c:2910
#12 ffmpeg_parse_options (argc=argc at entry=13, argv=argv at entry=0x7fffffffe238) at ffmpeg_opt.c:2947
#13 0x000000000046cde7 in main (argc=13, argv=0x7fffffffe238) at ffmpeg.c:4143
A debugging session is active.

	Inferior 1 [process 17735] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_928578a78b23067e10cf5b7f8347871f7773fef8.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[asf_o @ 0x1ab8560] Number of Packets from File Properties Object is not equal to TotalDatapackets value! num of packets 8528125544764866560 total num 2.
Input #0, asf_o, from '../crash-asf_o/id_928578a78b23067e10cf5b7f8347871f7773fef8.asf':
  Metadata:
    creation_time   : 1970-01-01 00:00:00
    WM/EncodingSeᙴtingsሀ: 6357068
  Duration: 00:00:00.12, bitrate: 470 kb/s
    Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le(10 bpc), 17x22, 1k tbr, 1k tbn, 1k tbc
Output #0, null, to '/dev/null':
  Metadata:
    WM/EncodingSeᙴtingsሀ: 6357068
    encoder         : Lavf56.40.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le(10 bpc), 17x22, q=2-31, 200 kb/s, 1k fps, 1k tbn, 1k tbc
    Metadata:
      encoder         : Lavc56.59.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (r10k (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[asf_o @ 0x1ab8560] Error: invalid buffer size, pay_len 1821, data size left -2097131520.

Program received signal SIGSEGV, Segmentation fault.
__memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
35	../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Datei oder Verzeichnis nicht gefunden.
#0  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
#1  0x0000000000547e96 in avio_read (s=s at entry=0x1ac1080, buf=buf at entry=0x0, size=<optimized out>, size at entry=20480) at libavformat/aviobuf.c:573
#2  0x0000000000535da7 in asf_read_multiple_payload (asf_pkt=0x1ac2eb8, pkt=0x7fffffffdb60, s=0x1ab8560) at libavformat/asfdec_o.c:1193
#3  asf_read_payload (pkt=0x7fffffffdb60, s=0x1ab8560) at libavformat/asfdec_o.c:1294
#4  asf_read_packet (s=0x1ab8560, pkt=0x7fffffffdb60) at libavformat/asfdec_o.c:1419
#5  0x000000000063eb55 in ff_read_packet (s=s at entry=0x1ab8560, pkt=pkt at entry=0x7fffffffdb60) at libavformat/utils.c:672
#6  0x0000000000641e20 in read_frame_internal (s=0x1ab8560, pkt=0x7fffffffdf70) at libavformat/utils.c:1328
#7  0x0000000000642e2a in av_read_frame (s=0x1ab8560, pkt=pkt at entry=0x7fffffffdf70) at libavformat/utils.c:1489
#8  0x000000000046e202 in get_input_packet (pkt=0x7fffffffdf70, f=0x1ab8f20) at ffmpeg.c:3602
#9  process_input (file_index=0) at ffmpeg.c:3639
#10 transcode_step () at ffmpeg.c:3929
#11 transcode () at ffmpeg.c:3982
#12 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4165
A debugging session is active.

	Inferior 1 [process 18971] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_a2c0a650cdb59a533e62fadb1461eda98455550a.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[asf_o @ 0x1ab8560] Number of Packets from File Properties Object is not equal to TotalDatapackets value! num of packets 2 total num 65510.
Input #0, asf_o, from '../crash-asf_o/id_a2c0a650cdb59a533e62fadb1461eda98455550a.asf':
  Metadata:
    creation_time   : 1969-12-31 23:59:59
    WM/EncodingSettings: Lavf56.25.101
  Duration: 00:00:00.12, start: -1485268411.566464, bitrate: 473 kb/s
    Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le(10 bpc), 17x22, 1k tbr, 1k tbn, 1k tbc
Output #0, null, to '/dev/null':
  Metadata:
    WM/EncodingSettings: Lavf56.25.101
    encoder         : Lavf56.40.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le(10 bpc), 17x22, q=2-31, 200 kb/s, 1k fps, 1k tbn, 1k tbc
    Metadata:
      encoder         : Lavc56.59.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (r10k (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[asf_o @ 0x1ab8560] Error: invalid buffer size, pay_len 30297, data size left -2122219135.
../crash-asf_o/id_a2c0a650cdb59a533e62fadb1461eda98455550a.asf: Invalid data found when processing input

Program received signal SIGSEGV, Segmentation fault.
avio_seek (s=0x5a069089a58c0d80, offset=offset at entry=0, whence=whence at entry=1) at libavformat/aviobuf.c:215
215	    buffer_size = s->buf_end - s->buffer;
#0  avio_seek (s=0x5a069089a58c0d80, offset=offset at entry=0, whence=whence at entry=1) at libavformat/aviobuf.c:215
#1  0x000000000046d11a in avio_tell (s=<optimized out>) at libavformat/avio.h:392
#2  need_output () at ffmpeg.c:3342
#3  transcode () at ffmpeg.c:3977
#4  main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4165
A debugging session is active.

	Inferior 1 [process 20106] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]



 *** ../crash-asf_o/id_feb84e407c8185b8b80b3e9177954658e7192286.asf ***



[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[asf_o @ 0x1ab8560] Number of Packets from File Properties Object is not equal to TotalDatapackets value! num of packets 10199964370168810754 total num 2.
Input #0, asf_o, from '../crash-asf_o/id_feb84e407c8185b8b80b3e9177954658e7192286.asf':
  Metadata:
    creation_time   : 1970-01-01 00:00:00
    WM/EncodingSettings: 6357068
  Duration: 00:00:00.12, bitrate: 473 kb/s
    Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le(10 bpc), 17x22, SAR 1:1 DAR 17:22, 1k tbr, 1k tbn, 1k tbc
Output #0, null, to '/dev/null':
  Metadata:
    WM/EncodingSettings: 6357068
    encoder         : Lavf56.40.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le(10 bpc), 17x22 [SAR 1:1 DAR 17:22], q=2-31, 200 kb/s, 1k fps, 1k tbn, 1k tbc
    Metadata:
      encoder         : Lavc56.59.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (r10k (native) -> rawvideo (native))
Press [q] to stop, [?] for help

Program received signal SIGSEGV, Segmentation fault.
__memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
35	../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Datei oder Verzeichnis nicht gefunden.
#0  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
#1  0x0000000000547e96 in avio_read (s=s at entry=0x1ac1080, buf=buf at entry=0x0, size=<optimized out>) at libavformat/aviobuf.c:573
#2  0x0000000000535c7e in asf_read_single_payload (pkt=<optimized out>, asf_pkt=0x1ab8f38, s=0x1ab8560) at libavformat/asfdec_o.c:1246
#3  asf_read_payload (pkt=0x7fffffffdb60, s=0x1ab8560) at libavformat/asfdec_o.c:1303
#4  asf_read_packet (s=0x1ab8560, pkt=0x7fffffffdb60) at libavformat/asfdec_o.c:1419
#5  0x000000000063eb55 in ff_read_packet (s=s at entry=0x1ab8560, pkt=pkt at entry=0x7fffffffdb60) at libavformat/utils.c:672
#6  0x0000000000641e20 in read_frame_internal (s=0x1ab8560, pkt=0x7fffffffdf70) at libavformat/utils.c:1328
#7  0x0000000000642e2a in av_read_frame (s=0x1ab8560, pkt=pkt at entry=0x7fffffffdf70) at libavformat/utils.c:1489
#8  0x000000000046e202 in get_input_packet (pkt=0x7fffffffdf70, f=0x1ac2f60) at ffmpeg.c:3602
#9  process_input (file_index=0) at ffmpeg.c:3639
#10 transcode_step () at ffmpeg.c:3929
#11 transcode () at ffmpeg.c:3982
#12 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4165
A debugging session is active.

	Inferior 1 [process 21281] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]


Best regards,
Andreas


More information about the ffmpeg-devel mailing list