From: Bernhard Sadlowski To: mplayer-users@mplayerhq.hu Cc: Bcc: sadlowsk@localhost Subject: MPlayer-20020825/gcc 2.95.3: sig11 while decoding a (probably) broken VCD Reply-To: Return-Receipt-To: Bernhard Sadlowski X-pmrqc: Bernhard Sadlowski X-Confirm-Reading-To: Bernhard Sadlowski X-Operating-System: Linux 2.4.18-386 i486 X-Subscribe-To: http://mplayerhq.hu/mailman/listinfo/mplayer-users Hi, After having the problem, I've updated my gcc from 2.95.2 to 2.95.3. But this didn't help. I get still a reproducable sig11 crash with a partially broken MPEG file. I've uploaded the file to ftp://mplayerhq.hu/MPlayer/incoming/crash.mpg System: Slackware 7.0 + manual updates $ uname -a Linux k7 2.4.19 #2 Sun Aug 4 13:58:25 CEST 2002 i686 unknown $ ls -l /lib/libc[.-]* -rwxr-xr-x 1 root root 1008844 10. Sep 1999 /lib/libc-2.1.2.so -rwxr-xr-x 1 root root 4131124 4. Jun 2000 /lib/libc-2.1.3.so lrwxrwxrwx 1 root root 14 21. Jun 2001 /lib/libc.so.5 -> libc.so.5.4.46 -rwxr-xr-x 1 root root 614840 22. Aug 1999 /lib/libc.so.5.4.46 lrwxrwxrwx 1 root root 13 4. Jun 2000 /lib/libc.so.6 -> libc-2.1.3.so $ X -version XFree86 Version 4.1.0 / X Window System (protocol Version 11, revision 0, vendor release 6510) Release Date: 2 June 2001 If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (See http://www.XFree86.Org/FAQ) Build Operating System: Linux 2.4.5 i686 [ELF] Module Loader present $ gcc -v Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs gcc version 2.95.3 20010315 (release) $ ld -v GNU ld version 2.11.92.0.12.3 20011121 $ as --version GNU assembler 2.11.92.0.12.3 20011121 Copyright 2001 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. This assembler was configured for a target of i686-pc-linux-gnu'. $ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 1 model name : AMD-K7(tm) Processor stepping : 2 cpu MHz : 503.530 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat mmx syscall mmxext 3dnowext 3dnow bogomips : 1002.70 Audio + Video: 00:10.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06) Subsystem: Ensoniq Creative Sound Blaster AudioPCI64V, AudioPCI128 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- SERR- 01:05.0 VGA compatible controller: nVidia Corporation NV15 DDR (GeForce2 GTS) (rev a4) (prog-if 00 [VGA]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- k7:/raid/vcd$ gdb /vol01/cvs/mplayer/MPlayer-20020825/mplayer GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) run -v crash.mpg Starting program: /vol01/cvs/mplayer/MPlayer-20020825/mplayer -v crash.mpg MPlayer CVS-020825-06:00-2.95.3 (C) 2000-2002 Arpad Gereoffy (see DOCS!) CPU: Advanced Micro Devices Athlon K7 (Family: 6, Stepping: 2) CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0 Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx Reading /home/sadlowsk/.mplayer/codecs.conf: can't open '/home/sadlowsk/.mplayer/codecs.conf': Datei oder Verzeichnis nicht gefunden Reading /usr/local/share/mplayer/codecs.conf: 38 audio & 106 video codecs CommandLine: '-v' 'crash.mpg' get_path('font/font.desc') -> '/home/sadlowsk/.mplayer/font/font.desc' font: can't open file: /home/sadlowsk/.mplayer/font/font.desc font: can't open file: /usr/local/share/mplayer/font/font.desc Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay Linux RTC init error in ioctl (rtc_pie_on): Keine Berechtigung Using usleep() timing get_path('input.conf') -> '/home/sadlowsk/.mplayer/input.conf' Can't open input config file /home/sadlowsk/.mplayer/input.conf : Datei oder Verzeichnis nicht gefunden Can't open input config file /usr/local/share/mplayer/input.conf : Datei oder Verzeichnis nicht gefunden Falling back on default (hardcoded) input config Setting up lirc support... mplayer: could not connect to socket mplayer: Keine Berechtigung Failed opening lirc support! You won't be able to use your remote control Playing crash.mpg Not an URL! File size is 524288 bytes Checking for YUV4MPEG2 DEMUXER: freeing demuxer at 0x8285d48 ASF_check: not ASF guid! DEMUXER: freeing demuxer at 0x8285d48 Checking for NuppelVideo DEMUXER: freeing demuxer at 0x8285d48 Checking for MOV DEMUXER: freeing demuxer at 0x8285d48 Checking for VIVO header block 1 size: 0 DEMUXER: freeing demuxer at 0x8285d48 Checking for REAL DEMUXER: freeing demuxer at 0x8285d48 DEMUXER: freeing demuxer at 0x8285d48 DEMUXER: freeing demuxer at 0x8285d48 DEMUXER: freeing demuxer at 0x8285d48 DEMUXER: freeing demuxer at 0x8285d48 DEMUXER: freeing demuxer at 0x8285d48 system stream synced at 0x97 (0)! ==> Found video stream: 0 Detected MPEG-PS file format! ==> Found audio stream: 0 Searching for sequence header... OK! VIDEO: MPEG1 352x288 (aspect 8) 25.00 fps 1437.5 kbps (179.7 kbyte/s) [V] filefmt:2 fourcc:0x10000001 size:352x288 fps:25.00 ftime:=0.0400 get_path('sub/') -> '/home/sadlowsk/.mplayer/sub/' Detected audio codec: [mp3] afm:1 (mp3lib MPEG layer-2, layer-3) Initializing audio codec... Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer mp3lib: made decode tables with MMX optimization init layer2&3 finished, tables done mp3lib: using 3DNow!Ex optimized decore! MPEG 1.0, Layer II, 44100 Hz 224 kbit Stereo, BPF: 731 Channels: 2, copyright: No, original: No, CRC: No, emphasis: 0 AUDIO: 44100 Hz, 2 ch, sfmt: 0x10 (2 bps), ratio: 28000->176400 (224.0 kbit) X11 opening display: :0 vo: X11 color mask: FFFF (R:F800 G:7E0 B:1F) vo: X11 running at 1280x1024 with depth 16 and 16 bpp (":0" => local display) [x11] Detected wm is of class NetWM. ========================================================================== Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough VDec: vo config request - 352 x 288 (preferred csp: Mpeg PES) vo_debug: query(Mpeg PES) returned 0x0 (i=0) Couldn't find matching colorspace - retrying with -vop scale... Opening video filter: [scale] SwScale params: -1 x -1 (-1=no scaling) vo_debug: query(Mpeg PES) returned 0x0 (i=0) Sorry, selected video_out device is incompatible with this codec. VDecoder init failed :( Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder v2.0 libmpeg2: Using MMXEXT for IDCT transform libmpeg2: Using MMXEXT for motion compensation VDec: vo config request - 352 x 288 (preferred csp: Planar YV12) vo_debug: query(Planar YV12) returned 0x437 (i=0) Movie-Aspect is 1.33:1 - prescaling to correct movie aspect. video_out->init(352x288->384x288,flags=0,'MPlayer',0x32315659) VO: [xv] 352x288 => 384x288 Planar YV12 VO: Description: X11/Xv VO: Author: Gerd Knorr and others Xvideo image format: 0x32595559 (YUY2) packed Xvideo image format: 0x32315659 (YV12) planar Xvideo image format: 0x59565955 (UYVY) packed Xvideo image format: 0x30323449 (I420) planar using Xvideo port 55 for hw scaling [xv] dx: 0 dy: 0 dw: 384 dh: 308 Detected video codec: [mpeg12] vfm:1 (MPEG 1 or 2) ========================================================================== AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) AO: Description: OSS/ioctl audio output AO: Author: A'rpi ao2: 44100 Hz 2 chans Signed 16-bit (Little-Endian) audio_setup: using '/dev/dsp' dsp device audio_setup: sample format: Signed 16-bit (Little-Endian) (requested: Signed 16-bit (Little-Endian)) audio_setup: using 2 channels (requested: 2) audio_setup: using 44100 Hz samplerate (requested: 44100) audio_setup: frags: 128/128 (1024 bytes/frag) free: 131072 Start playing... *** [vo] Allocating mp_image_t, 352x288x12bpp YUV planar, 152064 bytes [x11] Detected wm is KDE. [xv] dx: 0 dy: 0 dw: 384 dh: 288 *** [vo] Allocating mp_image_t, 352x288x12bpp YUV planar, 152064 bytes% *** [vo] Allocating mp_image_t, 352x288x12bpp YUV planar, 152064 bytes% A:1021.9 V:1021.9 A-V: -0.052 ct: -0.060 16/ 16 9% 5% 6.2% 0 0 0% Program received signal SIGSEGV, Segmentation fault. 0x80baa83 in II_step_one (bit_alloc=0xbfffdf9c, scale=0xbfffdc9c, fr=0x8248360) at layer2.c:103 103 *bita++ = (char) getbits(step=alloc1->bits); (gdb) list 98 *scfsi++ = (char) getbits_fast(2); 99 } 100 else /* mono */ 101 { 102 for (i=sblimit;i;i--,alloc1+=(1<bits); 104 bita = bit_alloc; 105 scfsi=scfsi_buf; 106 for (i=sblimit;i;i--) 107 if (*bita++) (gdb) bt #0 0x80baa83 in II_step_one (bit_alloc=0xbfffdf9c, scale=0xbfffdc9c, fr=0x8248360) at layer2.c:103 #1 0x80bb75e in do_layer2 (fr=0x8248360, outmode=-1) at layer2.c:279 #2 0x80c3275 in MP3_DecodeFrame (hova=0x82a7878 "ªưu", single=-1) at sr1.c:540 #3 0x809d630 in decode_audio (sh_audio=0x8287280, buf=0x82a7878 "ªưu", minlen=2560, maxlen=65536) at ad_mp3.c:79 #4 0x809bcde in decode_audio (sh_audio=0x8287280, buf=0x82a7878 "ªưu", minlen=2560, maxlen=65536) at dec_audio.c:130 #5 0x806b23e in main (argc=3, argv=0xbffff7c4, envp=0xbffff7d4) at mplayer.c:1510 (gdb) disass $eip-32 $eip+32 Dump of assembler code from 0x80baa63 to 0x80baaa3: 0x80baa63 : movl $0x9b75f04d,(%edi,%edi,8) 0x80baa6a : jmp 0x80bab95 0x80baa6f : nop 0x80baa70 : mov 0xfffffffc(%ebp),%ebx 0x80baa73 : mov %ebx,0xfffffff0(%ebp) 0x80baa76 : test %ebx,%ebx 0x80baa78 : je 0x80bab19 0x80baa7e : mov %esi,%esi 0x80baa80 : mov 0xfffffff4(%ebp),%eax 0x80baa83 : movswl (%eax),%eax 0x80baa86 : mov %eax,0xffffffe8(%ebp) 0x80baa89 : mov %eax,%edi 0x80baa8b : mov 0x8248348,%eax 0x80baa90 : sub %edi,%eax 0x80baa92 : mov %eax,0x8248348 0x80baa97 : js 0x80baaa0 0x80baa99 : cmpw $0x0,0xffffffe8(%ebp) 0x80baa9e : jne 0x80baaa4 0x80baaa0 : xor %ebx,%ebx 0x80baaa2 : jmp 0x80baaf5 End of assembler dump. (gdb) printf "eax=%08lX\n",$eax eax=0000006E (gdb) printf "ebx=%08lX\n",$ebx ebx=00000120 (gdb) printf "ecx=%08lX\n",$ecx ecx=00000000 (gdb) printf "edx=%08lX\n",$edx edx=00000120 (gdb) printf "esp=%08lX\n",$esp esp=BFFFDC14 (gdb) printf "ebp=%08lX\n",$ebp ebp=BFFFDC4C (gdb) printf "edi=%08lX\n",$edi edi=00000000 (gdb) printf "esi=%08lX\n",$esi esi=BFFFDC9C