[MPlayer-dev-eng] Re: [MPlayer-users] [BUG] crash with -flip

Arpi arpi at thot.banki.hu
Sat Jan 4 13:00:33 CET 2003


Hi,

i've traced it a bit (yes i could reproduce).
the vf_flip.c filter does support difert rendering, if the codec has the
MP_IMGFLAG_ACCEPT_STRIDE flag set (ffmpeg has).
but, flip will set negative stride values.

so it's probably some unhandled case / limitation of libavcodec not (always)
supporting negatiev strides.
note, that it decodes the first 2 frames (play with -fps 1) and then crashes
decoding the 3. frame.

here comes Diego's cutted bugrep:

> I have a divx file that crashes when I play it with -flip and decode
> with libavcodec, regardless of vo driver.  It does not crash with -vc
> divx.
> 
> I have uploaded the first 5MB to incoming as FinalFantasy.avi.

> MPlayer CVS-030104-04:35-2.95.4 (C) 2000-2002 Arpad Gereoffy (see DOCS)
> Compiled for x86 CPU with extensions: MMX 3DNow 3DNowEx

> Selected video codec: [ffdivx] vfm:ffmpeg (FFmpeg DivX ;-) (MS MPEG-4 v3))

> *** [vo] Allocating mp_image_t, 576x320x12bpp YUV planar, 276480 bytes
> *** [flip] Direct Rendering mp_image_t, 576x320x12bpp YUV planar, 276480 bytes

> *** [vo] Allocating mp_image_t, 576x320x12bpp YUV planar, 276480 bytes
> *** [flip] Direct Rendering mp_image_t, 576x320x12bpp YUV planar, 276480 bytes

> MPlayer interrupted by signal 11 in module: decode_video

> (gdb) bt
> #0  msmpeg4v34_decode_mb (s=0x83867e0, block=0x8390380) at common.h:632
> #1  0x081e529d in decode_slice (s=0x83867e0) at h263dec.c:206
> #2  0x081e5ca1 in ff_h263_decode_frame (avctx=0x834faf0, data=0x83497b0, 
>     data_size=0xbfffe728, 
>     buf=0x846a0b0 "I\237ý.\002.m. _\005I\225<\2128\234\f.Vù\0
> 34\207\021\n{.\213M..\201\221H..\027F..ê2s\f.\226.@\002.d\236
> E.\020..þ6.uGz;..ü%}\200ë\002\201_Kz÷9.\227åJc\220\016\201\21
> 1.s%..\206\231ô\003.7.2_\221.6..\034-5.G9\001..\200p.k.\227är
> *\035\f\003\205\223^.#\220\023]\f\003\205\222æKò9", buf_size=4585)
>     at h263dec.c:572
> #3  0x0815fc38 in avcodec_decode_video (avctx=0x834faf0, picture=0x83497b0, 
>     got_picture_ptr=0xbfffe728, 
>     buf=0x846a0b0 "I\237ý.\002.m. _\005I\225<\2128\234\f.Vù\0
> 34\207\021\n{.\213M..\201\221H..\027F..ê2s\f.\226.@\002.d\236
> E.\020..þ6.uGz;..ü%}\200ë\002\201_Kz÷9.\227åJc\220\016\201\21
> 1.s%..\206\231ô\003.7.2_\221.6..\034-5.G9\001..\200p.k.\227är
> *\035\f\003\205\223^.#\220\023]\f\003\205\222æKò9", buf_size=4585)
>     at utils.c:317
> #4  0x080b09a9 in decode (sh=0x8350a90, data=0x846a0b0, len=4585, flags=0)
>     at vd_ffmpeg.c:535
> #5  0x080a80a2 in decode_video (sh_video=0x8350a90, 
>     start=0x846a0b0 "I\237ý.\002.m. _\005I\225<\2128\234\f.Vù
> \034\207\021\n{.\213M..\201\221H..\027F..ê2s\f.\226.@\002.d\2
> 36E.\020..þ6.uGz;..ü%}\200ë\002\201_Kz÷9.\227åJc\220\016\201\
> 211.s%..\206\231ô\003.7.2_\221.6..\034-5.G9\001..\200p.k.\227
> är*\035\f\003\205\223^.#\220\023]\f\003\205\222æKò9", in_size=4585, 
>     drop_frame=0) at dec_video.c:306
> #6  0x08067de3 in main (argc=4, argv=0xbffffa54) at mplayer.c:1751
> (gdb) disass $pc-32 $pc+32
> Dump of assembler code from 0x81d934c to 0x81d938c:
> 0x81d934c <msmpeg4v34_decode_mb+64>:	
>     je     0x81d93e0 <msmpeg4v34_decode_mb+212>
> 0x81d9352 <msmpeg4v34_decode_mb+70>:	mov    0x9b20(%ecx),%ebx
> 0x81d9358 <msmpeg4v34_decode_mb+76>:	mov    0x9b18(%ecx),%edx
> 0x81d935e <msmpeg4v34_decode_mb+82>:	mov    0x8(%ebp),%edi
> 0x81d9361 <msmpeg4v34_decode_mb+85>:	mov    %ebx,%eax
> 0x81d9363 <msmpeg4v34_decode_mb+87>:	sar    $0x3,%eax
> 0x81d9366 <msmpeg4v34_decode_mb+90>:	mov    %ebx,%ecx
> 0x81d9368 <msmpeg4v34_decode_mb+92>:	and    $0x7,%ecx
> 0x81d936b <msmpeg4v34_decode_mb+95>:	inc    %ebx
> 0x81d936c <msmpeg4v34_decode_mb+96>:	movzbl (%eax,%edx,1),%eax
> 0x81d9370 <msmpeg4v34_decode_mb+100>:	shl    %cl,%eax
> 0x81d9372 <msmpeg4v34_decode_mb+102>:	mov    %ebx,0x9b20(%edi)
> 0x81d9378 <msmpeg4v34_decode_mb+108>:	test   $0x80,%al
> 0x81d937a <msmpeg4v34_decode_mb+110>:	
>     je     0x81d93e0 <msmpeg4v34_decode_mb+212>
> 0x81d937c <msmpeg4v34_decode_mb+112>:	movl   $0x0,0x1270(%edi)
> 0x81d9386 <msmpeg4v34_decode_mb+122>:	movl   $0x5,0xfffffff0(%ebp)
> End of assembler dump.


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu


More information about the MPlayer-dev-eng mailing list