[FFmpeg-devel] H.264 Regressions for x86_32/gcc 2.95.3

Loren Merritt lorenm
Fri Feb 8 08:10:30 CET 2008


On Thu, 7 Feb 2008, Mike Melanson wrote:
>
> The testing CPU supports SSSE3. If it did not and it tried to run a bad
> instruction, the program would have been killed for cause of illegal
> instruction, not segfault.
>
> If the assembler did not support the instructions, I tend to think the
> program would not build at all.

If the cpu doesn't support SSSE3, then dsputil won't enable it. If the 
assembler doesn't support SSSE3, then ffmpeg's configure won't enable it.

> Program received signal SIGSEGV, Segmentation fault.
> 0x0810ddc4 in put_h264_qpel16_mc23_ssse3 (dst=0x8299fc5 "\203?\020\203? ?",
>     src=0x8653210 '\200' <repeats 64 times>,
> "\"\213???????????????????????????????\214|xuutsqkif`XPH>71./136;?DHLO^rwz~\203\215\215\215\215\205\177|zzzzz}}}}{|vswqieeeefoxtt\200\201\205\207\210\203|y\177~~\177\203\202\202\202\203\202\204z__][",
> 'Z' <repeats 12 times>..., stride=140782355)
>     at /home/melanson/ffmpeg/ffmpeg-main/libavcodec/i386/h264dsp_mmx.c:1894
> 1894    QPEL_H264_HV2_XMM(put_,       PUT_OP, ssse3)
> (gdb) bt
> #0  0x0810ddc4 in put_h264_qpel16_mc23_ssse3 (
>     dst=0x8299fc5 "\203?\020\203? ?",
>     src=0x8653210 '\200' <repeats 64 times>,
> "\"\213???????????????????????????????\214|xuutsqkif`XPH>71./136;?DHLO^rwz~\203\215\215\215\215\205\177|zzzzz}}}}{|vswqieeeefoxtt\200\201\205\207\210\203|y\177~~\177\203\202\202\202\203\202\204z__][",
> 'Z' <repeats 12 times>..., stride=140782355)
>     at /home/melanson/ffmpeg/ffmpeg-main/libavcodec/i386/h264dsp_mmx.c:1894

The normal bugreport details include backtrace, disassembly, and register 
dump.

> Everything after that in the backtrace is unknown.

Remove -fomit-frame-pointer if you left it in the default compiler 
options.

> The dst argument here is shown to be 0x8299fc5. Is that cause for 
> concern?

Yes. If dst is unaligned, then no change in mc can possibly fix it, the 
bug is in the caller or the allocation of the frame buffer.
The other possibility is that that isn't the real value of dst, instead 
it's clobbered after entering the function.

--Loren Merritt



More information about the ffmpeg-devel mailing list