[FFmpeg-cvslog] r11398 - in trunk/libavcodec: rv30dsp.c rv34.c

Diego Biurrun diego
Fri Jan 4 20:40:53 CET 2008


On Fri, Jan 04, 2008 at 06:50:45PM +0100, kostya wrote:
> 
> Log:
> RV30 thirdpel motion compensation support

I get a crash that was not there before with the sample

http://samples.mplayerhq.hu/real/VC-RV30/lotr_trailer2_large.rm

Debian stable, K6-III, cc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

(gdb) run -stats /samples/Real/RV30/lotr_trailer2_large.rm
Starting program: /usr/src/ffmpeg/ffplay_g -stats
/samples/Real/RV30/lotr_trailer2_large.rm
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1212073312 (LWP 29236)]
FFplay version SVN-r11399, Copyright (c) 2003-2008 Fabrice Bellard, et
al.
  configuration: --enable-gpl --disable-vhook --disable-ffserver
--enable-debug
  libavutil version: 49.6.0
  libavcodec version: 51.49.0
  libavformat version: 52.3.0
  built on Jan  4 2008 20:29:12, gcc: 4.1.2 20061115 (prerelease)
(Debian 4.1.1-21)
[New Thread -1213236304 (LWP 29239)]
[New Thread -1222177872 (LWP 29240)]
[NULL @ 0x84d56d0]Unsupported video codec
[NULL @ 0x84d56d0]Unsupported video codec
Input #0, rm, from '/samples/Real/RV30/lotr_trailer2_large.rm':
  Duration: 00:02:28.9, start: 0.000000, bitrate: 956 kb/s
    Stream #0.0: Audio: cook, 44100 Hz, stereo, 64 kb/s
    Stream #0.1: Video: rv30, yuv420p, 640x312 [PAR 0:1 DAR 0:1], 935
kb/s, 12.00 tb(r)
    Stream #0.2: Data: 0x0000, 0 kb/s
    Stream #0.3: Data: 0x0000    0KB vq=    0KB sq=    0B    
Title: The Lord of the Rings: The Fellowship of the Ring
Copyright: ?2001 New Line Cinemas
[New Thread -1230566480 (LWP 29241)]
[New Thread -1239118928 (LWP 29242)]
   9.45 A-V:  0.253 aq=   71KB vq= 1289KB sq=    0B    
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1239118928 (LWP 29242)]
0x08400c06 in put_rv30_tpel8_v_lowpass (
    dst=0xb59e3148 "\"\"\"\"########", '$' <repeats 13 times>, "%%%%&",
'\'' <repeats 18 times>, "(((('''''''&((('&'&&$%%$$$$$", '#' <repeats 12
times>, "\"\"!!!!          !!!!\"\"\"\"", '$' <repeats 12 times>, '#'
<repeats 12 times>, "!!!!!!!!\"\"\"\"\"\"\"\"####", '"' <repeats 12
times>, "!!!!!!!!        ", '"' <repeats 16 times>..., 
    src=0xb5904148 "#", '$' <repeats 24 times>, "%%%%&''''''''''", '&'
<repeats 12 times>, "%%%%'''&((('&'&&$%%$", '#' <repeats 16 times>,
"\"\"\"\"!!!!        !!!!\"\"\"\"", '$' <repeats 12 times>, '#' <repeats
12 times>, "!!!!!!!!\"\"\"\"\"\"\"\"####", '"' <repeats 12 times>,
"!!!!!!!!        ", '"' <repeats 16 times>..., dstStride=640,
srcStride=640, C1=12, 
    C2=6) at rv30dsp.c:205
205     RV30_LOWPASS(put_       , op_put)


(gdb) bt
#0  0x08400c06 in put_rv30_tpel8_v_lowpass (
    dst=0xb59e3148 "\"\"\"\"########", '$' <repeats 13 times>, "%%%%&",
'\'' <repeats 18 times>, "(((('''''''&((('&'&&$%%$$$$$", '#' <repeats 12
times>, "\"\"!!!!          !!!!\"\"\"\"", '$' <repeats 12 times>, '#'
<repeats 12 times>, "!!!!!!!!\"\"\"\"\"\"\"\"####", '"' <repeats 12
times>, "!!!!!!!!        ", '"' <repeats 16 times>..., 
    src=0xb5904148 "#", '$' <repeats 24 times>, "%%%%&''''''''''", '&'
<repeats 12 times>, "%%%%'''&((('&'&&$%%$", '#' <repeats 16 times>,
"\"\"\"\"!!!!        !!!!\"\"\"\"", '$' <repeats 12 times>, '#' <repeats
12 times>, "!!!!!!!!\"\"\"\"\"\"\"\"####", '"' <repeats 12 times>,
"!!!!!!!!        ", '"' <repeats 16 times>..., dstStride=640,
srcStride=640, C1=12, 
    C2=6) at rv30dsp.c:205
#1  0x082e39fc in rv34_decode_mv (r=0x8628610, block_type=3) at
rv34.c:644
#2  0x082e6f83 in rv34_decode_slice (r=0x8628610, end=<value optimized
out>, buf=<value optimized out>, buf_size=1373) at rv34.c:924
#3  0x082e820a in ff_rv34_decode_frame (avctx=0x85ec980, data=0x877ff90,
data_size=0xb6248414, buf=0x86ede71 "\021\022G", buf_size=2393) at
rv34.c:1255
#4  0x080e8b40 in avcodec_decode_video (avctx=0x85ec980,
picture=0x877ff90, got_picture_ptr=0xb6248414, buf=0x86ede60 "\001\001",
buf_size=2393) at utils.c:945
#5  0x0804ce8d in video_thread (arg=0xb7271020) at ffplay.c:1369
#6  0xb7e3882b in SDL_GetThreadID () from /usr/lib/libSDL-1.2.so.0
#7  0xb7e85c8d in SDL_ThreadID () from /usr/lib/libSDL-1.2.so.0
#8  0xb7c190bd in start_thread () from /lib/tls/libpthread.so.0
#9  0xb7dc2ace in clone () from /lib/tls/libc.so.6


(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x8400be6 to 0x8400c26:
0x08400be6 <put_rv30_tpel8_v_lowpass+294>:      inc    %esp
0x08400be7 <put_rv30_tpel8_v_lowpass+295>:      mov    0x7c(%esp),%ecx
0x08400beb <put_rv30_tpel8_v_lowpass+299>:      movzbl
0xffffffff(%edx,%eax,1),%edx
0x08400bf0 <put_rv30_tpel8_v_lowpass+304>:      imul   %edi,%ecx
0x08400bf3 <put_rv30_tpel8_v_lowpass+307>:      mov    %edx,0x48(%esp)
0x08400bf7 <put_rv30_tpel8_v_lowpass+311>:      mov    0x78(%esp),%edx
0x08400bfb <put_rv30_tpel8_v_lowpass+315>:      imul   %esi,%edx
0x08400bfe <put_rv30_tpel8_v_lowpass+318>:      add    %ecx,%edx
0x08400c00 <put_rv30_tpel8_v_lowpass+320>:      mov    0x74(%esp),%ecx
0x08400c04 <put_rv30_tpel8_v_lowpass+324>:      neg    %ecx
0x08400c06 <put_rv30_tpel8_v_lowpass+326>:      movzbl
0xffffffff(%ecx,%eax,1),%eax
0x08400c0b <put_rv30_tpel8_v_lowpass+331>:      mov    0x5c(%esp),%ecx
0x08400c0f <put_rv30_tpel8_v_lowpass+335>:      add    %ebp,%eax
0x08400c11 <put_rv30_tpel8_v_lowpass+337>:      sub    %eax,%edx
0x08400c13 <put_rv30_tpel8_v_lowpass+339>:      add    $0x8,%edx
0x08400c16 <put_rv30_tpel8_v_lowpass+342>:      sar    $0x4,%edx
0x08400c19 <put_rv30_tpel8_v_lowpass+345>:      movzbl
0x85d2d20(%edx),%eax
0x08400c20 <put_rv30_tpel8_v_lowpass+352>:      mov    0x30(%esp),%edx
0x08400c24 <put_rv30_tpel8_v_lowpass+356>:      mov
%al,0xffffffff(%ecx,%edx,1)
End of assembler dump.


(gdb) info all-registers
eax            0xb5904149       -1248837303
ecx            0xfffffd80       -640
edx            0x276    630
ebx            0x25     37
esp            0xb6247e4c       0xb6247e4c
ebp            0x23     0x23
esi            0x23     35
edi            0x23     35
eip            0x8400c06        0x8400c06 <put_rv30_tpel8_v_lowpass+326>
eflags         0x10283  [ CF SF IF RF ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            -nan(0x20002000200020)   (raw 0xffff0020002000200020)
st1            -nan(0x6f6f6f706f6f6f70) (raw 0xffff6f6f6f706f6f6f70)
st2            -nan(0x8000800080008)    (raw 0xffff0008000800080008)
st3            -nan(0x8000800080008)    (raw 0xffff0008000800080008)
st4            <invalid float value>    (raw 0xffff0000000000000000)
st5            <invalid float value>    (raw 0xffff0000000000000000)
st6            -nan(0x378037803780380)  (raw 0xffff0378037803780380)
st7            <invalid float value>    (raw 0xffff0000000000000000)
fctrl          0x37f    895
fstat          0x20     32
ftag           0xaaaa   43690
fiseg          0x73     115
fioff          0x804d186        134533510
foseg          0x7b     123
fooff          0xb72f7714       -1221626092
fop            0x51e    1310
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 = 0x20002000200020, v2_int32 = {0x200020, 0x200020}, v4_int16 = {0x20, 0x20, 0x20, 0x20}, v8_int8 = {0x20, 0x0, 0x20, 0x0, 0x20, 0x0, 0x20, 0x0}}
mm1            {uint64 = 0x6f6f6f706f6f6f70, v2_int32 = {0x6f6f6f70, 0x6f6f6f70}, v4_int16 = {0x6f70, 0x6f6f, 0x6f70, 0x6f6f}, v8_int8 = {0x70, 0x6f, 0x6f, 0x6f, 0x70, 0x6f, 0x6f, 0x6f}}
mm2            {uint64 = 0x8000800080008, v2_int32 = {0x80008, 0x80008}, v4_int16 = {0x8, 0x8, 0x8, 0x8}, v8_int8 = {0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 0x0}}
mm3            {uint64 = 0x8000800080008, v2_int32 = {0x80008, 0x80008}, v4_int16 = {0x8, 0x8, 0x8, 0x8}, v8_int8 = {0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 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 = 0x378037803780380, v2_int32 = {0x3780380, 0x3780378}, v4_int16 = {0x380, 0x378, 0x378, 0x378}, v8_int8 = {0x80, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3}}
mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
(gdb) 
eax            0xb5904149       -1248837303
ecx            0xfffffd80       -640
edx            0x276    630
ebx            0x25     37
esp            0xb6247e4c       0xb6247e4c
ebp            0x23     0x23
esi            0x23     35
edi            0x23     35
eip            0x8400c06        0x8400c06 <put_rv30_tpel8_v_lowpass+326>
eflags         0x10283  [ CF SF IF RF ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            -nan(0x20002000200020)   (raw 0xffff0020002000200020)
st1            -nan(0x6f6f6f706f6f6f70) (raw 0xffff6f6f6f706f6f6f70)
st2            -nan(0x8000800080008)    (raw 0xffff0008000800080008)
st3            -nan(0x8000800080008)    (raw 0xffff0008000800080008)
st4            <invalid float value>    (raw 0xffff0000000000000000)
st5            <invalid float value>    (raw 0xffff0000000000000000)
st6            -nan(0x378037803780380)  (raw 0xffff0378037803780380)
st7            <invalid float value>    (raw 0xffff0000000000000000)
fctrl          0x37f    895
fstat          0x20     32
ftag           0xaaaa   43690
fiseg          0x73     115
fioff          0x804d186        134533510
foseg          0x7b     123
fooff          0xb72f7714       -1221626092
fop            0x51e    1310
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 = 0x20002000200020, v2_int32 = {0x200020, 0x200020}, v4_int16 = {0x20, 0x20, 0x20, 0x20}, v8_int8 = {0x20, 0x0, 0x20, 0x0, 0x20, 0x0, 0x20, 0x0}}
mm1            {uint64 = 0x6f6f6f706f6f6f70, v2_int32 = {0x6f6f6f70, 0x6f6f6f70}, v4_int16 = {0x6f70, 0x6f6f, 0x6f70, 0x6f6f}, v8_int8 = {0x70, 0x6f, 0x6f, 0x6f, 0x70, 0x6f, 0x6f, 0x6f}}
mm2            {uint64 = 0x8000800080008, v2_int32 = {0x80008, 0x80008}, v4_int16 = {0x8, 0x8, 0x8, 0x8}, v8_int8 = {0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 0x0}}
mm3            {uint64 = 0x8000800080008, v2_int32 = {0x80008, 0x80008}, v4_int16 = {0x8, 0x8, 0x8, 0x8}, v8_int8 = {0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 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 = 0x378037803780380, v2_int32 = {0x3780380, 0x3780378}, v4_int16 = {0x380, 0x378, 0x378, 0x378}, v8_int8 = {0x80, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3}}
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