[MPlayer-users] swScale_MMX2 bug ?
Nilmoni Deb
ndeb at ece.cmu.edu
Sun May 12 19:37:01 CEST 2002
Managed to reproduce the bug at last. Configured with --enable-debug
and SDL. Ran mplayer with '-v -vo x11 -fs -zoom'. Here's the gdb trace:
mplayer: swscale_template.c:2715: swScale_MMX2: Assertion `lastInLumBuf +
1 - srcSliceY >= 0' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 1024 (LWP 23890)]
0x403e4621 in kill () from /lib/libc.so.6
(gdb) bt
#0 0x403e4621 in kill () from /lib/libc.so.6
#1 0x4001f26b in raise (sig=6) at signals.c:65
#2 0x403e5a53 in abort () from /lib/libc.so.6
#3 0x403dde12 in __assert_fail () from /lib/libc.so.6
#4 0x081598d7 in swScale_MMX2 (c=0x86b6e80, srcParam=0xbfffe520,
srcStrideParam=0xbfffe330, srcSliceY=16, srcSliceH=16,
dstParam=0xbfffe2d0, dstStrideParam=0xbfffe2c0) at
swscale_template.c:2715
#5 0x0807f70d in draw_slice (src=0xbfffe520, stride=0xbfffe330, w=352,
h=16,
x=0, y=16) at vo_x11.c:518
#6 0x08092987 in draw_slice (frame=0x8226458, src=0xbfffe520)
at vd_libmpeg2.c:102
#7 0x080c94af in slice_process (picture=0x82c0780, code=2 '\002',
buffer=0x40636048
"K]P\004a2\210\224}qgG~\221\204LGD_\217/.\206oz\"2{8\220
\027\216\005C\003\2267/\237") at slice.c:1759
#8 0x08092cc3 in parse_chunk (sh=0x82bec38, code=2,
buffer=0x40636048
"K]P\004a2\210\224}qgG~\221\204LGD_\217/.\206oz\"2{8\220
\027\216\005C\003\2267/\237", framedrop=0)
at vd_libmpeg2.c:215
#9 0x08092e29 in decode (sh=0x82bec38, data=0x40636008, len=1676,
flags=0)
at vd_libmpeg2.c:278
#10 0x08090f6f in decode_video (sh_video=0x82bec38, start=0x40636008 "",
in_size=1676, drop_frame=0) at dec_video.c:182
#11 0x08068b6c in main (argc=7, argv=0xbffff8e4, envp=0xbffff904)
at mplayer.c:1546
#12 0x403d2280 in __libc_start_main () from /lib/libc.so.6
(gdb) disass $eip-32 $eip+32
Dump of assembler code from 0x403e4601 to 0x403e4641:
0x403e4601 <sigprocmask+65>: or $0xffffffff,%esi
0x403e4604 <sigprocmask+68>: add $0xc,%esp
0x403e4607 <sigprocmask+71>: mov %esi,%eax
0x403e4609 <sigprocmask+73>: pop %ebx
0x403e460a <sigprocmask+74>: pop %esi
0x403e460b <sigprocmask+75>: pop %edi
0x403e460c <sigprocmask+76>: pop %ebp
0x403e460d <sigprocmask+77>: ret
0x403e460e <sigprocmask+78>: mov %esi,%esi
0x403e4610 <kill>: mov %ebx,%edx
0x403e4612 <kill+2>: mov 0x8(%esp,1),%ecx
0x403e4616 <kill+6>: mov 0x4(%esp,1),%ebx
0x403e461a <kill+10>: mov $0x25,%eax
0x403e461f <kill+15>: int $0x80
0x403e4621 <kill+17>: mov %edx,%ebx
0x403e4623 <kill+19>: cmp $0xfffff001,%eax
0x403e4628 <kill+24>: jae 0x403e462b <kill+27>
0x403e462a <kill+26>: ret
0x403e462b <kill+27>: push %ebx
0x403e462c <kill+28>: call 0x403e4631 <kill+33>
0x403e4631 <kill+33>: pop %ebx
0x403e4632 <kill+34>: xor %edx,%edx
0x403e4634 <kill+36>: add $0x10c35b,%ebx
0x403e463a <kill+42>: sub %eax,%edx
0x403e463c <kill+44>: push %edx
0x403e463d <kill+45>: call 0x403d1cb4 <SDL_alarm_callback+102892>
End of assembler dump.
Obviously, I am not using the SDL driver. Then why is it using the
SDL_alarm_callback function ?
I went into the SDL source tree and found by grep:
src/timer/SDL_timer.c:SDL_TimerCallback SDL_alarm_callback;
src/timer/SDL_timer.c: SDL_alarm_callback = callback;
src/timer/SDL_timer_c.h:extern SDL_TimerCallback SDL_alarm_callback;
thanks
- Nil
More information about the MPlayer-users
mailing list