[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