[MPlayer-dev-eng] [BUG] libmpeg12/g1 memcorruption broken mpeg1 files

Felix Buenemann atmosfear at users.sourceforge.net
Mon May 26 01:17:33 CEST 2003


On Monday 26 May 2003 00:32, Felix Buenemann wrote:
> On Sunday 25 May 2003 20:09, Arpi wrote:
> > Hi,
> >
> > > -nodr (but I also haven't enable -dr from my config file). -vo null
> > > works.
> >
> > and -vo null -vc mpeg12 ?
> > (as with -vo null it defaults to codec 'mpegpes')
>
> oops, thx for the tip:
> -vo null -vc mpeg12 -> hangs
> same when adding -nodr and -nodr -noslices.
> Is -noslices honoured by all codecs?
OK, here comes the full bug report:

HW: P3-Cu 850, 384MB, i440BX, Savage MX-MV 8MB
System:
Gentoo Base System version 1.4.2.5
Linux astral 2.4.20 #4 Sat Apr 12 15:35:27 CEST 2003 i686 Pentium III 
(Coppermine) GenuineIntel GNU/Linux
gcc 3.2.2, glibc 2.3.2

GDB session attached.
> > A'rpi / Astral & ESP-team
> >
> > --
> > Developer of MPlayer G2, the Movie Framework for all -
> > http://www.MPlayerHQ.hu

-- 
Best Regards,
        Atmos
____________________________________________
- MPlayer Developer - http://mplayerhq.hu/ -
____________________________________________
-------------- next part --------------
(gdb) r -v -benchmark -nosound /mnt/smb/atmosfear/F\$/DivX/ff/lexus02high.mpg -nocache -vo null -vc mpeg12
Starting program: /home/atmosfear/develop/mplayer/main/mplayer -v -benchmark -nosound /mnt/smb/atmosfear/F\$/DivX/ff/lexus02high.mpg -nocache -vo null -vc mpeg12

  Electric Fence 2.2.0 Copyright (C) 1987-1999 Bruce Perens <bruce at perens.com>
[New Thread 16384 (LWP 6011)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale

  Electric Fence 2.2.0 Copyright (C) 1987-1999 Bruce Perens <bruce at perens.com>
Current domain: mplayer
Current dirname: /usr/local/share/locale


MPlayer dev-CVS-030524-00:51-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Family: 6, Stepping: 6)
Detected cache-line size is 32 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 SSE

Reading config file /usr/local/etc/mplayer/mplayer.conf: Datei oder Verzeichnis nicht gefunden
Reading config file /home/atmosfear/.mplayer/config
Reading /home/atmosfear/.mplayer/codecs.conf: 57 audio & 146 video codecs
CommandLine: '-v' '-benchmark' '-nosound' '/mnt/smb/atmosfear/F$/DivX/ff/lexus02high.mpg' '-nocache' '-vo' 'null' '-vc' 'mpeg12'
get_path('font/font.desc') -> '/home/atmosfear/.mplayer/font/font.desc'
font: can't open file: /home/atmosfear/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Failed to open /dev/rtc: Keine Berechtigung (mplayer should be setuid root or /dev/rtc should be readable by the user.)
Using usleep() timing
get_path('input.conf') -> '/home/atmosfear/.mplayer/input.conf'
Parsing input config file /home/atmosfear/.mplayer/input.conf
Input config file /home/atmosfear/.mplayer/input.conf parsed : 52 binds
get_path('lexus02high.mpg.conf') -> '/home/atmosfear/.mplayer/lexus02high.mpg.conf'

Playing /mnt/smb/atmosfear/F$/DivX/ff/lexus02high.mpg
Not an URL!
[file] File size is 42534793 bytes
STREAM: [file] /mnt/smb/atmosfear/F$/DivX/ff/lexus02high.mpg
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x41e097a0
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x41e097a0
Checking for NuppelVideo
DEMUXER: freeing demuxer at 0x41e097a0
Checking for REAL
DEMUXER: freeing demuxer at 0x41e097a0
Checking for SMJPEG
DEMUXER: freeing demuxer at 0x41e097a0
DEMUXER: freeing demuxer at 0x41e117a0
Searching demuxer type for filename /mnt/smb/atmosfear/F$/DivX/ff/lexus02high.mpg ext: .mpg
Checking for MOV
DEMUXER: freeing demuxer at 0x41e117a0
Checking for VIVO
header block 1 size: 0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
DEMUXER: freeing demuxer at 0x41e117a0
Checking for PVA
DEMUXER: freeing demuxer at 0x41e117a0
************Checking for TS************
NOT A TS FILE1
TRIED UP TO POSITION 1000000, FOUND 0, packet_size= 0
BUF: 47 0e 9c 7b, PID 3740, SIZE: 0
PID 3740, COMPARE CC 11 AND LAST_CC -1
BUF: 47 0e 9c 7b, PID 3740, SIZE: 0
PID 3740, COMPARE CC 11 AND LAST_CC 11
DEMUXER: freeing demuxer at 0x41e117a0
system stream synced at 0xB (0)!
==> Found video stream: 0
MPEG-PS file format detected.
Searching for sequence header... OK!
VIDEO:  MPEG1  352x240  (aspect 12)  29,97 fps    0,0 kbps ( 0,0 kbyte/s)
[V] filefmt:2  fourcc:0x10000001  size:352x240  fps:29,97  ftime:=0,0334
get_path('sub/') -> '/home/atmosfear/.mplayer/sub/'
get_path('default.sub') -> '/home/atmosfear/.mplayer/default.sub'
==========================================================================
Forced video codec: mpeg12
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.3.1
Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG 1 or 2 (libmpeg2))
==========================================================================
Audio: no sound
Freeing 0 unused audio chunks
Starting playback...
VDec: vo config request - 352 x 240 (preferred csp: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1,33:1 - prescaling to correct movie aspect.
VO Config (352x240->352x264,flags=0,'MPlayer',0x32315659)
VO: [null] 352x240 => 352x264 Planar YV12
VO: Description: Null video output
VO: Author: Aaron Holtzman <aholtzma at ess.engr.uvic.ca>
*** [vo] Allocating mp_image_t, 352x240x12bpp YUV planar, 126720 bytes
*** [vo] Allocating mp_image_t, 352x240x12bpp YUV planar, 126720 bytes
==> Found audio stream: 0,0% 0 0 0%
*** [vo] Allocating mp_image_t, 352x240x12bpp YUV planar, 126720 bytes
V: 300,5  8991   5%  0%  0,0% 0 0 0%
Program received signal SIGINT, Interrupt.
[Switching to Thread 16384 (LWP 6011)]
slice_init (decoder=0x41e2abe0, code=0) at slice.c:1568
1568            if (!(decoder->convert) || decoder->coding_type != B_TYPE) {
(gdb) bt
#0  slice_init (decoder=0x41e2abe0, code=0) at slice.c:1568
#1  0x0810a279 in mpeg2_slice (decoder=0x41e2abe0, code=0, buffer=0x0) at slice.c:1594
#2  0x081014ab in mpeg2_parse (mpeg2dec=0x41e2abe0) at decode.c:205
#3  0x080c01e8 in decode (sh=0x41e19f70, data=0x1, len=0, flags=0) at vd_libmpeg2.c:108
#4  0x080b7c73 in decode_video (sh_video=0x41e19f70, start=0x0, in_size=0, drop_frame=0) at dec_video.c:304
#5  0x0806ef9b in main (argc=10, argv=0xbffff5d4) at mplayer.c:1971
#6  0x4050fb47 in __libc_start_main () from /lib/libc.so.6
(gdb) disass $eip-32 $eip+32
Dump of assembler code from 0x810bc7b to 0x810bcbb:
0x810bc7b <slice_init+747>:     add    %cl,0x3b60fd1(%ecx)
0x810bc81 <slice_init+753>:     add    %edi,%eax
0x810bc83 <slice_init+755>:     shl    $0x4,%eax
0x810bc86 <slice_init+758>:     mov    %eax,0xac(%esi)
0x810bc8c <slice_init+764>:     cmp    %edx,%eax
0x810bc8e <slice_init+766>:     js     0x810bcdb <slice_init+843>
0x810bc90 <slice_init+768>:     mov    0xffffffec(%ebp),%ebx
0x810bc93 <slice_init+771>:     sub    %edx,%eax
0x810bc95 <slice_init+773>:     mov    %eax,0xac(%esi)
0x810bc9b <slice_init+779>:     test   %ebx,%ebx
0x810bc9d <slice_init+781>:     je     0x810bca8 <slice_init+792>
0x810bc9f <slice_init+783>:     cmpl   $0x3,0x1d8(%esi)
0x810bca6 <slice_init+790>:     je     0x810bcc8 <slice_init+824>
0x810bca8 <slice_init+792>:     mov    0xb0(%esi),%eax
0x810bcae <slice_init+798>:     mov    %eax,%edx
0x810bcb0 <slice_init+800>:     shl    $0x2,%eax
0x810bcb3 <slice_init+803>:     add    %eax,0x90(%esi)
0x810bcb9 <slice_init+809>:     shl    $0x4,%edx
End of assembler dump.
(gdb) info all-registers
eax            0x0      0
ecx            0x0      0
edx            0x0      0
ebx            0x0      0
esp            0xbfffe168       0xbfffe168
ebp            0xbfffe188       0xbfffe188
esi            0x41e2abe0       1105374176
edi            0x0      0
eip            0x810bc9b        0x810bc9b
eflags         0x200246 2097734
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x0      0
gs             0x7      7
st0            -0e+4922 (raw 0xffff0000000000000000)
st1            -nan(0x202020202020202)  (raw 0xffff0202020202020202)
st2            -nan(0xf0f0e0d0d0d0f0f)  (raw 0xffff0f0f0e0d0d0d0f0f)
st3            -nan(0xd0d0d0e0e0f1011)  (raw 0xffff0d0d0d0e0e0f1011)
st4            -nan(0x6e007100740077)   (raw 0xffff006e007100740077)
st5            1        (raw 0x3fff8000000000000000)
st6            0        (raw 0x00000000000000000000)
st7            0.0333666987717151641845703125   (raw 0x3ffa88ab850000000000)
fctrl          0x37f    895
fstat          0x4020   16416
ftag           0xffff   65535
fiseg          0x23     35
fioff          0x806ef5c        134672220
foseg          0x2b     43
fooff          0xbfffe360       -1073749152
fop            0x19d    413
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
---Type <return> to continue, or q <return> to quit---
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff,
    0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
mxcsr          0x1f80   8064
orig_eax       0xffffff01       -255
mm0            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm1            {uint64 = 0x202020202020202, v2_int32 = {0x2020202, 0x2020202}, v4_int16 = {0x202, 0x202, 0x202, 0x202}, v8_int8 = {0x2, 0x2, 0x2, 0x2, 0x2, 0x2,
    0x2, 0x2}}
mm2            {uint64 = 0xf0f0e0d0d0d0f0f, v2_int32 = {0xd0d0f0f, 0xf0f0e0d}, v4_int16 = {0xf0f, 0xd0d, 0xe0d, 0xf0f}, v8_int8 = {0xf, 0xf, 0xd, 0xd, 0xd, 0xe,
    0xf, 0xf}}
mm3            {uint64 = 0xd0d0d0e0e0f1011, v2_int32 = {0xe0f1011, 0xd0d0d0e}, v4_int16 = {0x1011, 0xe0f, 0xd0e, 0xd0d}, v8_int8 = {0x11, 0x10, 0xf, 0xe, 0xe,
    0xd, 0xd, 0xd}}
mm4            {uint64 = 0x6e007100740077, v2_int32 = {0x740077, 0x6e0071}, v4_int16 = {0x77, 0x74, 0x71, 0x6e}, v8_int8 = {0x77, 0x0, 0x74, 0x0, 0x71, 0x0, 0x6e,
    0x0}}
mm5            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000}, v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}}
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 = 0x88ab850000000000, v2_int32 = {0x0, 0x88ab8500}, v4_int16 = {0x0, 0x0, 0x8500, 0x88ab}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0xab,
    0x88}}
(gdb) signal SIGUSR1
Continuing with signal SIGUSR1.
Cannot find user-level thread for LWP 6011: generic error
(gdb) signal SIGUSR2
Continuing with signal SIGUSR2.
Cannot find thread 16384: generic error
(gdb) c
Continuing.
[tcsetpgrp failed in terminal_inferior: Die Operation ist nicht erlaubt]
Cannot find thread 16384: generic error
Cannot remove breakpoints because program is no longer writable.
It might be running in another process.
Further execution is probably impossible.
slice_init (decoder=Cannot find thread 16384: generic error
) at slice.c:1568
1568            if (!(decoder->convert) || decoder->coding_type != B_TYPE) {
(gdb)


More information about the MPlayer-dev-eng mailing list