[Ffmpeg-devel] Illegal instruction

Guillaume Poirier gpoirier
Wed Mar 14 11:11:07 CET 2007


Hi,
Alex2000deluxe at web.de wrote:

> sry, sry next chance.
> 
> P.S. I compiled the newest ffmpeg revision r-8397 but the same failure.
> 
> NB7002:~/soft/ffmpeg-r8397 admin$ gdb ffmpeg_g 
> GNU gdb 6.3.50-20050815 (Apple version gdb-563) (Wed Jul 19 05:10:58 GMT 2006)
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-apple-darwin"...Reading symbols for shared libraries ......... done
> 
> (gdb) -i test.avi -y -s pal -r pal -ac 2 -ar 48000 test.avi.dv
> Undefined command: "-i".  Try "help".
> (gdb) r -i test.avi -y -s pal -r pal -ac 2 -ar 48000 test.avi.dv
> Starting program: /Users/admin/soft/ffmpeg-r8397/ffmpeg_g -i test.avi -y -s pal -r pal -ac 2 -ar 48000 test.avi.dv
> Reading symbols for shared libraries .+++++++ done
> FFmpeg version SVN-r8397, Copyright (c) 2000-2007 Fabrice Bellard, et al.
>   configuration: --prefix=/opt/local --disable-vhook --mandir=/opt/local/share/man --extra-cflags=-I/opt/local/include --extra-ldflags=-dynamic -L/opt/local/lib --disable-ffplay --enable-gpl --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-x264 --enable-pthreads --enable-shared
>   libavutil version: 49.3.0
>   libavcodec version: 51.38.0
>   libavformat version: 51.10.0
>   built on Mar 14 2007 10:48:38, gcc: 4.0.1 (Apple Computer, Inc. build 5363)
> Input #0, avi, from 'test.avi':
>   Duration: 00:00:51.1, start: 0.000000, bitrate: 3726 kb/s
>   Stream #0.0: Video: h264, yuv420p, 720x576, 25.00 fps(r)
>   Stream #0.1: Audio: mp3, 48000 Hz, stereo, 192 kb/s
> Output #0, dv, to 'test.avi.dv':
>   Stream #0.0: Video: dvvideo, yuv420p, 720x576, q=2-31, 200 kb/s, 25.00 fps(c)
>   Stream #0.1: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
> Stream mapping:
>   Stream #0.0 -> #0.0
>   Stream #0.1 -> #0.1
> Press [q] to stop encoding
> 
> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand.
> 0x011416df in ff_fdct_sse2 ()
> (gdb) bt
> #0  0x011416df in ff_fdct_sse2 ()
> #1  0xbfffbe40 in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (gdb) disass $pc-32 $pc+32
> Dump of assembler code from 0x11416bf to 0x11416ff:
> 0x011416bf <ff_fdct_sse2+725>:  cmc    
> 0x011416c0 <ff_fdct_sse2+726>:  int3   
> 0x011416c1 <ff_fdct_sse2+727>:  paddd  %xmm7,%xmm3
> 0x011416c5 <ff_fdct_sse2+731>:  paddd  %xmm2,%xmm1
> 0x011416c9 <ff_fdct_sse2+735>:  paddd  %xmm6,%xmm3
> 0x011416cd <ff_fdct_sse2+739>:  paddd  %xmm6,%xmm1
> 0x011416d1 <ff_fdct_sse2+743>:  psrad  $0x11,%xmm3
> 0x011416d6 <ff_fdct_sse2+748>:  psrad  $0x11,%xmm1
> 0x011416db <ff_fdct_sse2+753>:  packssdw %xmm3,%xmm1
> 0x011416df <ff_fdct_sse2+757>:  movdqa %xmm1,0(%ecx)
> 0x011416e4 <ff_fdct_sse2+762>:  movq   64(%esi),%xmm2
> 0x011416e9 <ff_fdct_sse2+767>:  movq   72(%esi),%xmm0
> 0x011416ee <ff_fdct_sse2+772>:  movdqa 32(%edx),%xmm3
> 0x011416f3 <ff_fdct_sse2+777>:  movdqa 48(%edx),%xmm7
> 0x011416f8 <ff_fdct_sse2+782>:  movq   %xmm2,%xmm1
> 0x011416fc <ff_fdct_sse2+786>:  pshuflw $0x1b,%xmm0,%xmm0
> End of assembler dump.
> (gdb) info all-registers
> eax            0x13f4d20        20925728
> ecx            0xbfffe968       -1073747608

Please try attached patch. It should work around the problem, as it
did for a previous user.
The problem is that I don't understand why some compilers don't align
properly memory, which leads to analigned memory access.
I also don't know how to force these compilers to align properly.

Guillaume
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ff_fdct_sse2_segfault_fix.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070314/fac65897/attachment.asc>



More information about the ffmpeg-devel mailing list