[FFmpeg-cvslog] r15630 - in trunk/libavcodec: i386/dsputil_mmx.c i386/dsputil_mmx.h i386/vp3dsp_mmx.c i386/vp3dsp_mmx.h vp3.c
Diego Biurrun
diego
Sat Oct 18 22:06:52 CEST 2008
On Fri, Oct 17, 2008 at 05:18:08AM +0200, conrad wrote:
>
> Log:
> MMX VP3 Loop Filter
This one seems to be crashing with an illegal instruction on my K6-3.
Are you using MMX2 instructions in there?
(gdb) run -stats /samples/samples/V-codecs/Theora/Sahara.ogg
Starting program: /usr/src/ffmpeg/ffplay_g -stats
/samples/samples/V-codecs/Theora/Sahara.ogg
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1211299168 (LWP 27046)]
FFplay version SVN-r15634, Copyright (c) 2003-2008 Fabrice Bellard, et
al.
configuration: --enable-gpl --enable-swscale --enable-postproc
--enable-avfilter
libavutil 49.12. 0 / 49.12. 0
libavcodec 52. 0. 0 / 52. 0. 0
libavformat 52.22. 1 / 52.22. 1
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 1. 0 / 0. 1. 0
libswscale 0. 6. 1 / 0. 6. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Oct 18 2008 20:07:04, gcc: 4.1.2 20061115 (prerelease)
(Debian 4.1.1-21)
[New Thread -1212462160 (LWP 27049)]
[New Thread -1221694544 (LWP 27050)]
[theora @ 0x880f3c0]7 bits left in packet 820KB sq= 0B
Input #0, ogg, from '/samples/samples/V-codecs/Theora/Sahara.ogg':
Duration: 00:00:16.22, start: 0.000000, bitrate: 493 kb/s
Stream #0.0: Video: theora, yuv420p, 240x136, 8.00 tb(r)
Stream #0.1: Audio: vorbis, 22050 Hz, stereo, s16, 98 kb/s
[New Thread -1230083152 (LWP 27051)]
[theora @ 0x880f3c0]7 bits left in packet 82
[New Thread -1238893648 (LWP 27052)]
Program received signal SIGILL, Illegal instruction.
[Switching to Thread -1238893648 (LWP 27052)]
0x083f3f2e in ff_vp3_h_loop_filter_mmx (src=0x890cf18 "", stride=-272,
bounding_values=0x888e1fc)
at libavcodec/i386/vp3dsp_mmx.c:112
112 __asm__ volatile(
(gdb) bt
#0 0x083f3f2e in ff_vp3_h_loop_filter_mmx (src=0x890cf18 "", stride=-272, bounding_values=0x888e1fc)
at libavcodec/i386/vp3dsp_mmx.c:112
#1 0x0837aa4d in vp3_decode_frame (avctx=0x880f3c0, data=0x8901cd0, data_size=0xb627f414,
buf=0x88687b0 "2\n@\025?@\003?\235`_???-V?\006?\003k?\222Z?\037?]?\222??>?Q%???%\201`$?Z?\217Ok?\222Z?\002\036\b?Z?v???R\235\017`B\004\201::0?6?\217?`?\001?\r}??mB_?\235?\217\235?\buE??\020????S\205?O\204??I\217/???/?\"v?\002?f\236ei\234-?\213|?023\"?fMd???\232\225\205h\231\034",
buf_size=3943) at libavcodec/vp3.c:1532
#2 0x08114980 in avcodec_decode_video (avctx=0x880f3c0, picture=0x8901cd0, got_picture_ptr=0xb627f414,
buf=0x88687b0 "2\n@\025?@\003?\235`_???-V?\006?\003k?\222Z?\037?]?\222??>?Q%???%\201`$?Z?\217Ok?\222Z?\002\036\b?Z?v???R\235\017`B\004\201::0?6?\217?`?\001?\r}??mB_?\235?\217\235?\buE??\020????S\205?O\204??I\217/???/?\"v?\002?f\236ei\234-?\213|?023\"?fMd???\232\225\205h\231\034",
buf_size=3943) at libavcodec/utils.c:922
#3 0x0805f3da in video_thread (arg=0xb72e7020) at ffplay.c:1360
#4 0xb7ef582b in SDL_GetThreadID () from /usr/lib/libSDL-1.2.so.0
#5 0xb7f42c8d in SDL_ThreadID () from /usr/lib/libSDL-1.2.so.0
#6 0xb7cd60bd in start_thread () from /lib/tls/libpthread.so.0
#7 0xb7e8001e in clone () from /lib/tls/libc.so.6
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x83f3f0e to 0x83f3f4e:
0x083f3f0e <ff_vp3_h_loop_filter_mmx+126>: or %cl,(%edi)
0x083f3f10 <ff_vp3_h_loop_filter_mmx+128>: outsl %ds:(%esi),(%dx)
0x083f3f11 <ff_vp3_h_loop_filter_mmx+129>: fimull (%edi)
0x083f3f13 <ff_vp3_h_loop_filter_mmx+131>: out %eax,(%dx)
0x083f3f14 <ff_vp3_h_loop_filter_mmx+132>: aam $0xf
0x083f3f16 <ff_vp3_h_loop_filter_mmx+134>: fistl 0x84a8fd8
0x083f3f1c <ff_vp3_h_loop_filter_mmx+140>: movq %mm2,%mm5
0x083f3f1f <ff_vp3_h_loop_filter_mmx+143>: paddb %mm2,%mm2
0x083f3f22 <ff_vp3_h_loop_filter_mmx+146>: paddb %mm5,%mm2
0x083f3f25 <ff_vp3_h_loop_filter_mmx+149>: paddb %mm6,%mm2
0x083f3f28 <ff_vp3_h_loop_filter_mmx+152>: pcmpeqb %mm0,%mm0
0x083f3f2b <ff_vp3_h_loop_filter_mmx+155>: pxor %mm0,%mm1
0x083f3f2e <ff_vp3_h_loop_filter_mmx+158>: pavgb %mm2,%mm1
0x083f3f31 <ff_vp3_h_loop_filter_mmx+161>: pxor %mm4,%mm0
0x083f3f34 <ff_vp3_h_loop_filter_mmx+164>: pavgb %mm3,%mm0
0x083f3f37 <ff_vp3_h_loop_filter_mmx+167>: paddb 0x84a8fe0,%mm1
0x083f3f3e <ff_vp3_h_loop_filter_mmx+174>: pavgb %mm0,%mm1
0x083f3f41 <ff_vp3_h_loop_filter_mmx+177>: pavgb %mm0,%mm1
0x083f3f44 <ff_vp3_h_loop_filter_mmx+180>: paddusb %mm1,%mm7
0x083f3f47 <ff_vp3_h_loop_filter_mmx+183>: movq 0x84a9000,%mm6
End of assembler dump.
(gdb) info all-registers
eax 0xfffffef0 -272
ecx 0x890cf18 143707928
edx 0xfffffcd0 -816
ebx 0x890cad8 143706840
esp 0xb627f160 0xb627f160
ebp 0x1e 0x1e
esi 0x888e1fc 143188476
edi 0x1f0 496
eip 0x83f3f2e 0x83f3f2e <ff_vp3_h_loop_filter_mmx+158>
eflags 0x210286 [ PF SF IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
st0 -nan(0xffffffffffffffff) (raw 0xffffffffffffffffffff)
st1 -nan(0xffffffffffffffff) (raw 0xffffffffffffffffffff)
st2 <invalid float value> (raw 0xffff0000000000000000)
st3 <invalid float value> (raw 0xffff0000000000000000)
st4 <invalid float value> (raw 0xffff0000000000000000)
st5 <invalid float value> (raw 0xffff0000000000000000)
st6 <invalid float value> (raw 0xffff0000000000000000)
st7 <invalid float value> (raw 0xffff0000000000000000)
fctrl 0x37f 895
fstat 0x120 288
ftag 0xaaaa 43690
fiseg 0x73 115
fioff 0x805f03f 134606911
foseg 0x7b 123
fooff 0xb73b3bd4 -1220854828
fop 0x59e 1438
xmm0 {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}
xmm1 {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}
xmm2 {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}
xmm3 {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}
xmm4 {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}
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 = {
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}
xmm7 {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 0x1f80 [ IM DM ZM OM UM PM ]
mm0 {uint64 = 0xffffffffffffffff, v2_int32 = {0xffffffff, 0xffffffff}, v4_int16 = {0xffff,
0xffff, 0xffff, 0xffff}, v8_int8 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}
mm1 {uint64 = 0xffffffffffffffff, v2_int32 = {0xffffffff, 0xffffffff}, v4_int16 = {0xffff,
0xffff, 0xffff, 0xffff}, v8_int8 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}
mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
Diego
More information about the ffmpeg-cvslog
mailing list