[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