Opened 11 years ago
Closed 11 years ago
#3370 closed defect (invalid)
SIGILL (Illegal instruction) when transcoding with libvpx-vp9
Reported by: | Bernardo | Owned by: | |
---|---|---|---|
Priority: | important | Component: | undetermined |
Version: | git-master | Keywords: | libvpx crash |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
I updated to latest version of libvpx and to test VP9 transcoding.
With any video I try, the process receive a SIGILL (Illegal instruction) and aborts immediately.
How to reproduce:
$ gdb --args ~/ffmpeg/ffmpeg/ffmpeg_g -i CCD.mp4 -c:v vp9 CCD.webm GNU gdb (GDB) 7.6.1-ubuntu Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/jb/ffmpeg/ffmpeg/ffmpeg_g...done. (gdb) r Starting program: /home/jb/ffmpeg/ffmpeg/ffmpeg_g -i CCD.mp4 -c:v vp9 CCD.webm [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". ffmpeg version N-49452-ge9314f1 Copyright (c) 2000-2014 the FFmpeg developers built on Feb 3 2014 15:01:17 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9) configuration: --enable-gpl --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3 --enable-libfreetype --enable-shared libavutil 52. 63.100 / 52. 63.100 libavcodec 55. 49.101 / 55. 49.101 libavformat 55. 29.101 / 55. 29.101 libavdevice 55. 7.100 / 55. 7.100 libavfilter 4. 1.102 / 4. 1.102 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'CCD.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2012-05-12 20:34:23 Duration: 00:04:26.00, start: 0.000000, bitrate: 1299 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1145 kb/s, 29.97 fps, 29.97 tbr, 60k tbn, 59.94 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 151 kb/s (default) Metadata: creation_time : 2012-05-12 20:34:23 handler_name : IsoMedia File Produced by Google, 5-11-2011 [New Thread 0x7fffec9c3700 (LWP 11550)] [New Thread 0x7fffec1c2700 (LWP 11551)] [New Thread 0x7fffeb9c1700 (LWP 11552)] [New Thread 0x7fffeb1c0700 (LWP 11553)] [New Thread 0x7fffea9bf700 (LWP 11554)] [New Thread 0x7fffea1be700 (LWP 11555)] [New Thread 0x7fffe99bd700 (LWP 11556)] [New Thread 0x7fffe91bc700 (LWP 11557)] [New Thread 0x7fffe89bb700 (LWP 11558)] [New Thread 0x7fffe81ba700 (LWP 11559)] [libvpx-vp9 @ 0x6f54c0] v1.3.0-907-gc0856b9 [New Thread 0x7fffdf759700 (LWP 11560)] [New Thread 0x7fffdef58700 (LWP 11561)] [New Thread 0x7fffde757700 (LWP 11562)] [New Thread 0x7fffddf56700 (LWP 11563)] [New Thread 0x7fffdd755700 (LWP 11564)] Output #0, webm, to 'CCD.webm': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 encoder : Lavf55.29.101 Stream #0:0(und): Video: vp9 (libvpx-vp9), yuv420p, 1280x720, q=-1--1, 200 kb/s, 1k tbn, 29.97 tbc (default) Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: vorbis (libvorbis), 44100 Hz, stereo, fltp (default) Metadata: creation_time : 2012-05-12 20:34:23 handler_name : IsoMedia File Produced by Google, 5-11-2011 Stream mapping: Stream #0:0 -> #0:0 (h264 -> libvpx-vp9) Stream #0:1 -> #0:1 (aac -> libvorbis) Press [q] to stop, [?] for help Program received signal SIGILL, Illegal instruction. 0x00007ffff2e63c77 in ?? () from /usr/local/lib/libvpx.so.1 (gdb) bt #0 0x00007ffff2e63c77 in ?? () from /usr/local/lib/libvpx.so.1 #1 0x00007ffff2da8d44 in ?? () from /usr/local/lib/libvpx.so.1 #2 0x00007ffff2dc9a8b in ?? () from /usr/local/lib/libvpx.so.1 #3 0x00007ffff2dcca15 in ?? () from /usr/local/lib/libvpx.so.1 #4 0x00007ffff2dccf8b in ?? () from /usr/local/lib/libvpx.so.1 #5 0x00007ffff2dd32ce in ?? () from /usr/local/lib/libvpx.so.1 #6 0x00007ffff2d9ba32 in ?? () from /usr/local/lib/libvpx.so.1 #7 0x00007ffff2da3a55 in ?? () from /usr/local/lib/libvpx.so.1 #8 0x00007ffff2da5658 in ?? () from /usr/local/lib/libvpx.so.1 #9 0x00007ffff2dc2e06 in ?? () from /usr/local/lib/libvpx.so.1 #10 0x00007ffff2dc4dee in ?? () from /usr/local/lib/libvpx.so.1 #11 0x00007ffff2d8474c in ?? () from /usr/local/lib/libvpx.so.1 #12 0x00007ffff2cf3848 in vpx_codec_encode () from /usr/local/lib/libvpx.so.1 #13 0x00007ffff67c892c in ?? () from /usr/local/lib/libavcodec.so.55 #14 0x00007ffff692a9d2 in avcodec_encode_video2 () from /usr/local/lib/libavcodec.so.55 #15 0x000000000041de34 in do_video_out (in_picture=0x10c81a0, ost=0x6f7140, s=0x64a8a0) at ffmpeg.c:997 #16 reap_filters () at ffmpeg.c:1157 #17 0x0000000000407f27 in transcode_step () at ffmpeg.c:3373 #18 transcode () at ffmpeg.c:3416 #19 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:3596 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff2e63c57 to 0x7ffff2e63c97: 0x00007ffff2e63c57: rex.B pshufw $0xe,%mm0,%mm7 0x00007ffff2e63c5c: pmaxsw %xmm7,%xmm8 0x00007ffff2e63c61: pshuflw $0xe,%xmm8,%xmm7 0x00007ffff2e63c67: pmaxsw %xmm7,%xmm8 0x00007ffff2e63c6c: pshuflw $0x1,%xmm8,%xmm7 0x00007ffff2e63c72: pmaxsw %xmm7,%xmm8 => 0x00007ffff2e63c77: pextrw $0x0,%xmm8,(%rdx) 0x00007ffff2e63c7e: retq 0x00007ffff2e63c7f: mov %r8,%rdi 0x00007ffff2e63c82: mov %rcx,%rdx 0x00007ffff2e63c85: mov 0x30(%rsp),%rcx 0x00007ffff2e63c8a: lea (%rdi,%rsi,2),%rdi 0x00007ffff2e63c8e: lea (%rdx,%rsi,2),%rdx 0x00007ffff2e63c92: neg %rsi 0x00007ffff2e63c95: pxor %xmm7,%xmm7 End of assembler dump. (gdb) info all-registers rax 0x7ffff30e3298 140737271181976 rbx 0x7fffe6d1e020 140737065902112 rcx 0xa65440 10900544 rdx 0xa69460 10916960 rsi 0x0 0 rdi 0xa63420 10892320 rbp 0x7fffe6d1e020 0x7fffe6d1e020 rsp 0x7fffffffc338 0x7fffffffc338 r8 0xa67460 10908768 r9 0x7ffff309e5a0 140737270900128 r10 0x7fffe6d24110 140737065926928 r11 0x7ffff4e0f8ba 140737301772474 r12 0x7fffe6d24110 140737065926928 r13 0x7fffe42798c0 140737021188288 r14 0x7fffdcd318c0 140736898209984 r15 0x40 64 rip 0x7ffff2e63c77 0x7ffff2e63c77 eflags 0x10247 [ CF PF ZF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0xff81ff81ff81ff81) (raw 0xffffff81ff81ff81ff81) st1 -nan(0x180018001800180) (raw 0xffff0180018001800180) st2 -nan(0xff81ff81ff81ff81) (raw 0xffffff81ff81ff81ff81) st3 -nan(0x180018001800180) (raw 0xffff0180018001800180) st4 -inf (raw 0xffff0000000000000000) st5 -nan(0x606060606060606) (raw 0xffff0606060606060606) st6 -nan(0x303030303030303) (raw 0xffff0303030303030303) st7 -nan(0x101010101010101) (raw 0xffff0101010101010101) fctrl 0x27f 639 fstat 0x0 0 ftag 0xaaaa 43690 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x76, 0x4, 0x76, 0x4, 0x76, 0x4, 0x76, 0x4, 0x76, 0x4, 0x76, 0x4, 0x76, 0x4, 0x76, 0x4}, v8_int16 = {0x476, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476, 0x476}, v4_int32 = {0x4760476, 0x4760476, 0x4760476, 0x4760476}, v2_int64 = {0x476047604760476, 0x476047604760476}, uint128 = 0x04760476047604760476047604760476} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xad, 0x2, 0xad, 0x2, 0xad, 0x2, 0xad, 0x2, 0xad, 0x2, 0xad, 0x2, 0xad, 0x2, 0xad, 0x2}, v8_int16 = {0x2ad, 0x2ad, 0x2ad, 0x2ad, 0x2ad, 0x2ad, 0x2ad, 0x2ad}, v4_int32 = {0x2ad02ad, 0x2ad02ad, 0x2ad02ad, 0x2ad02ad}, v2_int64 = {0x2ad02ad02ad02ad, 0x2ad02ad02ad02ad}, uint128 = 0x02ad02ad02ad02ad02ad02ad02ad02ad} xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f, 0x68, 0x8f}, v8_int16 = {0x8f68, 0x8f68, 0x8f68, 0x8f68, 0x8f68, 0x8f68, 0x8f68, 0x8f68}, v4_int32 = {0x8f688f68, 0x8f688f68, 0x8f688f68, 0x8f688f68}, v2_int64 = {0x8f688f688f688f68, 0x8f688f688f688f68}, uint128 = 0x8f688f688f688f688f688f688f688f68} ---Type <return> to continue, or q <return> to quit--- xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x24, 0x7, 0x24, 0x7, 0x24, 0x7, 0x24, 0x7, 0x24, 0x7, 0x24, 0x7, 0x24, 0x7, 0x24, 0x7}, v8_int16 = {0x724, 0x724, 0x724, 0x724, 0x724, 0x724, 0x724, 0x724}, v4_int32 = {0x7240724, 0x7240724, 0x7240724, 0x7240724}, v2_int64 = {0x724072407240724, 0x724072407240724}, uint128 = 0x07240724072407240724072407240724} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0}, v8_int16 = {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40}, v4_int32 = {0x400040, 0x400040, 0x400040, 0x400040}, v2_int64 = {0x40004000400040, 0x40004000400040}, uint128 = 0x00400040004000400040004000400040} xmm5 {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} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x2, 0x0, 0x5, 0x0, 0x8, 0x0, 0x1, 0x0, 0x3, 0x0, 0x9, 0x0, 0xc, 0x0}, v8_int16 = {0x1, 0x2, 0x5, 0x8, 0x1, 0x3, 0x9, 0xc}, v4_int32 = {0x20001, 0x80005, 0x30001, 0xc0009}, v2_int64 = {0x8000500020001, 0xc000900030001}, uint128 = 0x000c0009000300010008000500020001} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0}, v4_int32 = {0x10000, 0x10001, 0x1, 0x1}, v2_int64 = {0x1000100010000, 0x100000001}, uint128 = 0x00000001000000010001000100010000} xmm8 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}, v8_int16 = {0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0}, v4_int32 = {0x10001, 0x10001, 0x1, 0x1}, v2_int64 = {0x1000100010001, 0x100000001}, uint128 = 0x00000001000000010001000100010001} xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x20, 0xf0, 0x0 <repeats 14 times>}, v8_int16 = {0xf020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xf020, 0x0, 0x0, 0x0}, v2_int64 = {0xf020, 0x0}, uint128 = 0x0000000000000000000000000000f020} xmm10 {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} xmm11 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x4, 0x0, 0x7, 0x0, 0xb, 0x0, 0xe, 0x0, 0x6, 0x0, 0xa, 0x0, 0xd, 0x0, 0xf, 0x0}, v8_int16 = {0x4, 0x7, 0xb, 0xe, 0x6, 0xa, 0xd, 0xf}, v4_int32 = {0x70004, 0xe000b, 0xa0006, 0xf000d}, v2_int64 = {0xe000b00070004, 0xf000d000a0006}, uint128 = 0x000f000d000a0006000e000b00070004} xmm12 {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} xmm13 {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} xmm14 {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} xmm15 {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} mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
Change History (4)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
Did you report this to the developers of libvpx? The crash seems deeply in their code.
comment:3 by , 11 years ago
I posted a bug report in the Webm project (http://code.google.com/p/webm/issues/detail?id=702)
comment:4 by , 11 years ago
Keywords: | libvpx crash added; vp9 removed |
---|---|
Priority: | normal → important |
Resolution: | → invalid |
Status: | new → closed |
Please reopen if it turns out that this is a bug in FFmpeg.
Note:
See TracTickets
for help on using tickets.
Somehow, using valgrind, the error does not occur (does it disable x86 specific code? because it runs at 0.2 fps)