[FFmpeg-trac] #3370(undetermined:new): SIGILL (Illegal instruction) when transcoding with libvpx-vp9

FFmpeg trac at avcodec.org
Mon Feb 3 19:41:45 CET 2014


#3370: SIGILL (Illegal instruction) when transcoding with libvpx-vp9
-------------------------------------+-------------------------------------
             Reporter:  jbvsmo       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:  vp9          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 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 ]

 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3370>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list