Opened 14 years ago
Closed 14 years ago
#197 closed defect (fixed)
Multi-threaded decoding with -threads results in seg fault
Reported by: | gepmff | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avcodec |
Version: | git-master | Keywords: | regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Successful decoding with -threads 1:
$ ffmpeg -v 9 -loglevel 99 -vsync 0 -threads 1 -i test.mkv -f null -vcodec rawvideo -an - ffmpeg version git-N-29906-ge3114a9, Copyright (c) 2000-2011 the FFmpeg developers built on May 13 2011 12:18:50 with gcc 4.5.2 configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libvpx --enable-libvorbis --enable-libx264 --enable-x11grab --enable-shared libavutil 51. 2. 1 / 51. 2. 1 libavcodec 53. 5. 0 / 53. 5. 0 libavformat 53. 0. 3 / 53. 0. 3 libavdevice 53. 0. 0 / 53. 0. 0 libavfilter 2. 5. 0 / 2. 5. 0 libswscale 0. 14. 0 / 0. 14. 0 libpostproc 51. 2. 0 / 51. 2. 0 [NULL @ 0x1d0ed40] Format matroska,webm probed with size=2048 and score=100 st:0 removing common factor 1000000 from timebase [h264 @ 0x1d11800] Unsupported bit depth: 0 [h264 @ 0x1d11800] no picture Last message repeated 1 times [matroska,webm @ 0x1d0ed40] All info found [matroska,webm @ 0x1d0ed40] Estimating duration from bitrate, this may be inaccurate Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 29.97 (30000/1001) Input #0, matroska,webm, from 'test.mkv': Duration: 00:01:59.48, start: 0.000000, bitrate: N/A Stream #0.0(eng), 43, 1/1000: Video: h264 (High), yuv420p, 720x480, 1/2000, PAR 1:1 DAR 3:2, 29.97 tbr, 1k tbn, 2k tbc (default) [buffer @ 0x1d170e0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:1/1 Output #0, null, to 'pipe:': Metadata: encoder : Lavf53.0.3 Stream #0.0(eng), 0, 1/90000: Video: rawvideo, yuv420p, 720x480 [PAR 1:1 DAR 3:2], 1001/30000, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc (default) Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop encoding [h264 @ 0x1d11800] no picture Last message repeated 1 times -0kB time=114.61 bitrate= -0.0kbits/s frame= 3582 fps=423 q=0.0 Lsize= -0kB time=119.52 bitrate= -0.0kbits/s video:0kB audio:0kB global headers:0kB muxing overhead -inf%
Decoding with anything above -threads 1 results seg fault:
$ ffmpeg -v 9 -loglevel 99 -vsync 0 -threads 2 -i test.mkv -f null -vcodec rawvideo -an - ffmpeg version git-N-29906-ge3114a9, Copyright (c) 2000-2011 the FFmpeg developers built on May 13 2011 12:18:50 with gcc 4.5.2 configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libvpx --enable-libvorbis --enable-libx264 --enable-x11grab --enable-shared libavutil 51. 2. 1 / 51. 2. 1 libavcodec 53. 5. 0 / 53. 5. 0 libavformat 53. 0. 3 / 53. 0. 3 libavdevice 53. 0. 0 / 53. 0. 0 libavfilter 2. 5. 0 / 2. 5. 0 libswscale 0. 14. 0 / 0. 14. 0 libpostproc 51. 2. 0 / 51. 2. 0 [NULL @ 0x223dd40] Format matroska,webm probed with size=2048 and score=100 st:0 removing common factor 1000000 from timebase [h264 @ 0x2240800] Unsupported bit depth: 0 [h264 @ 0x2240800] no picture Last message repeated 1 times [matroska,webm @ 0x223dd40] All info found [matroska,webm @ 0x223dd40] Estimating duration from bitrate, this may be inaccurate Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 29.97 (30000/1001) Input #0, matroska,webm, from 'test.mkv': Duration: 00:01:59.48, start: 0.000000, bitrate: N/A Stream #0.0(eng), 43, 1/1000: Video: h264 (High), yuv420p, 720x480, 1/2000, PAR 1:1 DAR 3:2, 29.97 tbr, 1k tbn, 2k tbc (default) [buffer @ 0x22460e0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:1/1 Output #0, null, to 'pipe:': Metadata: encoder : Lavf53.0.3 Stream #0.0(eng), 0, 1/90000: Video: rawvideo, yuv420p, 720x480 [PAR 1:1 DAR 3:2], 1001/30000, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc (default) Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop encoding [h264 @ 0x22440e0] no picture [h264 @ 0x22445c0] no picture Segmentation fault
gdb with ffmpeg_g:
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff5b03436 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) bt #0 0x00007ffff5b03436 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff5bb8780 in __vsnprintf_chk () from /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff62fe466 in av_log_default_callback () from /usr/local/lib/libavutil.so.51 #3 0x00007ffff62fe8d6 in av_log () from /usr/local/lib/libavutil.so.51 #4 0x00007ffff79b5ca1 in av_vsrc_buffer_add_frame2 () from /usr/local/lib/libavfilter.so.2 #5 0x0000000000406075 in output_packet (ist=<value optimized out>, ist_index=0, ost_table=0x640420, nb_ostreams=1, pkt=<value optimized out>) at ffmpeg.c:1653 #6 0x000000000040b22e in transcode (nb_output_files=1, nb_input_files=1, stream_maps=0x0, nb_stream_maps=-11728, input_files=0x619b20, output_files=0x619800) at ffmpeg.c:2710 #7 0x000000000041057c in main (argc=<value optimized out>, argv=<value optimized out>) at ffmpeg.c:4514 (gdb) disass $pc-32 $pc+32 A syntax error in expression, near `$pc+32'. (gdb) info all-registers rax 0x0 0 rbx 0x7fffffffc420 140737488340000 rcx 0xffffffffffffffff -1 rdx 0x7fffffffcaf8 140737488341752 rsi 0x7ffff79bd3e5 140737347572709 rdi 0x43800000780 4638564681600 rbp 0x7fffffffc410 0x7fffffffc410 rsp 0x7fffffffbd90 0x7fffffffbd90 r8 0x7fffffffc2c8 140737488339656 r9 0x0 0 r10 0x206d6f7266206465 2336646318805509221 r11 0x7ffff5bb8650 140737316095568 r12 0x49 73 r13 0x7fffffffca00 140737488341504 r14 0x7ffff79bd3a0 140737347572640 r15 0xffffffffffffff80 -128 rip 0x7ffff5b03436 0x7ffff5b03436 <vfprintf+7126> eflags 0x10246 [ PF ZF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -inf (raw 0xffff0000000000000000) st1 -inf (raw 0xffff0000000000000000) st2 -inf (raw 0xffff0000000000000000) st3 -inf (raw 0xffff0000000000000000) st4 -inf (raw 0xffff0000000000000000) st5 -nan(0x606060606060606) (raw 0xffff0606060606060606) st6 -nan(0x303030303030303) (raw 0xffff0303030303030303) st7 -nan(0x101010101010101) (raw 0xffff0101010101010101) fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 ---Type <return> to continue, or q <return> to quit--- fooff 0x0 0 fop 0x0 0 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0xff, 0x0 <repeats 11 times>}, v8_int16 = {0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0xff, 0x0, 0x0}, v2_int64 = {0xff00000000, 0x0}, uint128 = 0x0000000000000000000000ff00000000} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x25 <repeats 16 times>}, v8_int16 = {0x2525, 0x2525, 0x2525, 0x2525, 0x2525, 0x2525, 0x2525, 0x2525}, v4_int32 = {0x25252525, 0x25252525, 0x25252525, 0x25252525}, v2_int64 = {0x2525252525252525, 0x2525252525252525}, uint128 = 0x25252525252525252525252525252525} xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0xff00, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0xff000000, 0x0, 0x0}, v2_int64 = {0xff00000000000000, 0x0}, uint128 = 0x0000000000000000ff00000000000000} xmm4 {v4_float = {0x0, 0x7, 0x0, 0x0}, v2_double = {0x15f90, 0x8000000000000000}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0xf9, 0xf5, 0x40, 0x20, 0x62, 0x69, 0x63, 0x75, 0x62, 0x69, 0x63}, v8_int16 = {0x0, 0x0, 0xf900, 0x40f5, 0x6220, 0x6369, 0x6275, 0x6369}, v4_int32 = {0x0, 0x40f5f900, 0x63696220, 0x63696275}, v2_int64 = {0x40f5f90000000000, 0x6369627563696220}, uint128 = 0x636962756369622040f5f90000000000} xmm5 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, v16_int8 = {0x6d, 0x7d, 0xbf, 0xbb, 0x27, 0xaf, 0xf5, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x7d6d, 0xbbbf, 0xaf27, 0x3ff5, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xbbbf7d6d, 0x3ff5af27, 0x0, 0x0}, v2_int64 = { 0x3ff5af27bbbf7d6d, 0x0}, uint128 = 0x00000000000000003ff5af27bbbf7d6d} xmm6 {v4_float = {0x0, 0xfffffffd, 0x0, 0x0}, v2_double = {0xffffffffffffffd2, 0x0}, v16_int8 = { 0x5b, 0xaa, 0xa2, 0x2a, 0x9e, 0x6, 0x47, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = { 0xaa5b, 0x2aa2, 0x69e, 0xc047, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2aa2aa5b, 0xc047069e, 0x0, 0x0}, v2_int64 = {0xc047069e2aa2aa5b, 0x0}, uint128 = 0x0000000000000000c047069e2aa2aa5b} xmm7 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, v2_int64 = {0x3ff0000000000000, 0x0}, uint128 = 0x00000000000000003ff0000000000000} xmm8 {v4_float = {0x0, 0xfffffffd, 0x0, 0x0}, v2_double = {0xffffffffffffffd2, 0x0}, v16_int8 = { 0xe0, 0xe6, 0x35, 0x67, 0x9e, 0x6, 0x47, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = { 0xe6e0, 0x6735, 0x69e, 0xc047, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x6735e6e0, 0xc047069e, 0x0, 0x0}, v2_int64 = {0xc047069e6735e6e0, 0x0}, uint128 = 0x0000000000000000c047069e6735e6e0} xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, ---Type <return> to continue, or q <return> to quit--- 0x68, 0xc8, 0xbc, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0xc868, 0x3bbc, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x3bbcc868, 0x0, 0x0}, v2_int64 = {0x3bbcc86800000000, 0x0}, uint128 = 0x00000000000000003bbcc86800000000} xmm10 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x46, 0x84, 0x24, 0x59, 0xd6, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x8446, 0x5924, 0x3ed6, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x84460000, 0x3ed65924, 0x0, 0x0}, v2_int64 = { 0x3ed6592484460000, 0x0}, uint128 = 0x00000000000000003ed6592484460000} xmm11 {v4_float = {0x9689a800, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x6a, 0xa2, 0x65, 0x50, 0xf2, 0xea, 0x8f, 0xbd, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0}, v8_int16 = {0xa26a, 0x5065, 0xeaf2, 0xbd8f, 0x0, 0xff00, 0xff, 0x0}, v4_int32 = {0x5065a26a, 0xbd8feaf2, 0xff000000, 0xff}, v2_int64 = {0xbd8feaf25065a26a, 0xffff000000}, uint128 = 0x000000ffff000000bd8feaf25065a26a} xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3cc4, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x3cc40000, 0x0, 0x0}, v2_int64 = {0x3cc4000000000000, 0x0}, uint128 = 0x00000000000000003cc4000000000000} xmm13 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x59, 0xbc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x8000, 0xbc59, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0xbc598000, 0x0, 0x0}, v2_int64 = {0xbc59800000000000, 0x0}, uint128 = 0x0000000000000000bc59800000000000} xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x8e, 0x85, 0x83, 0xe8, 0xf0, 0x24, 0x53, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x858e, 0xe883, 0x24f0, 0x3c53, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xe883858e, 0x3c5324f0, 0x0, 0x0}, v2_int64 = { 0x3c5324f0e883858e, 0x0}, uint128 = 0x00000000000000003c5324f0e883858e} xmm15 {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x2d, 0x0}, v16_int8 = {0xc0, 0x9, 0xf2, 0x16, 0xb5, 0xdf, 0x46, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9c0, 0x16f2, 0xdfb5, 0x4046, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x16f209c0, 0x4046dfb5, 0x0, 0x0}, v2_int64 = { 0x4046dfb516f209c0, 0x0}, uint128 = 0x00000000000000004046dfb516f209c0} mxcsr 0x1fa5 [ IE ZE PE IM DM ZM OM UM PM ]
Change History (2)
comment:1 by , 14 years ago
Keywords: | regression added |
---|---|
Priority: | normal → important |
Reproduced by developer: | set |
Status: | new → open |
Version: | unspecified → git-master |
comment:2 by , 14 years ago
Component: | undetermined → avcodec |
---|---|
Resolution: | → fixed |
Status: | open → closed |
Note:
See TracTickets
for help on using tickets.
Regression since 64c06615d2b99fb9f4ffd6226d0e5787b44a41e2.