[MPlayer-users] Bug Report: mencoder seg fault on audio only encoding

Landon McDowell mplayer at planet-max.com
Tue Jan 14 03:00:33 CET 2003


I am trying to encode/copy audio only files and streams using mencoder.
I have tried all of the following actions:


mp3 file -> copy -> mp3 file
mp3 network stream -> copy -> mp3 file
real file -> mp3lame -> mp3 file
real network stream -> mp3lame -> mp3 file
windows media network stream -> mp3lame -> mp3 file
real file -> copy -> real file

	All of the actions using mencoder result in a segmentation fault.I have
experienced this issue with both Debian Linux and FreeBSD.

	The following are captures I have made on the two platforms. The
captures consist of system info and gdb output. I could not get
MPlayer-current from CVS compiled on FreeBSD, so I do not have debugging
symbols from that crash, or a recent version for that matter, but the
crashes appear to be happening in the same place on both systems.

	I apologize if this is a know issue.

--------------------------------
problem: mencoder generates a segmentaion fault when 
         encoding/copying mp3,real files and mp3,win32,real 
         network streams.

mencoder version: CVS-030113-00:00-3.2.2

Distro: Debian 3 (Sid/Sarge)

Kernel (Linux): linux-2.4.20

libc: libc-2.3.1

X: 4.2.1.1

gcc: 3.2.2

ld: GNU ld version 2.13.90.0.16

as: GNU assembler 2.13.90.0.16

sample commands: 
  mencoder -oac copy -v ./sample.mp3 -o sample2.mp3
  mencoder rtsp://audio.npr.org/news/news2a.smil -oac mp3lame -o npr.mp3

GBD Output:

lmcdowel at vercingetorix:~/MPlayer-20030113$ gdb ./mencoder
GNU gdb 5.3-debian
Copyright 2002 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 "i386-linux"...
(gdb) run -v -oac copy ../art.mp3
Starting program: /home/lmcdowel/MPlayer-20030113/mencoder -v -oac copy
../art.mp3[New Thread 16384 (LWP 14007)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale


MEncoder CVS-030113-00:00-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Intel  (Family: 8, Stepping: 7)
Detected cache-line size is 64 bytes
CPUflags: Type: 8 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Reading /home/lmcdowel/.mplayer/codecs.conf: 49 audio & 123 video codecs
File not found: 'frameno.avi'
Reading config file /home/lmcdowel/.mplayer/mencoder
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Not an URL!
File size is 43453090 bytes
success: format: 0  data: 0x0 - 0x2970AA2
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x828b600  
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x828b600  
Checking for NuppelVideo
DEMUXER: freeing demuxer at 0x828b600  
Checking for MOV
DEMUXER: freeing demuxer at 0x828b600  
Checking for VIVO
header block 1 size: 67
DEMUXER: freeing demuxer at 0x828b600  
Checking for REAL
DEMUXER: freeing demuxer at 0x828b600  
DEMUXER: freeing demuxer at 0x828b600  
DEMUXER: freeing demuxer at 0x828b600  
DEMUXER: freeing demuxer at 0x828b600  
DEMUXER: freeing demuxer at 0x828b600  
Checking for SMJPEG
DEMUXER: freeing demuxer at 0x828b600  
Checking for PVA
DEMUXER: freeing demuxer at 0x828bfa0  
sync_mpeg_ps: seems to be MP3 stream...
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)  
MPEG packet stats: p100: 1  p101: 0  PES: 0  MP3: 194 
Not MPEG System Stream format... (maybe Transport Stream?)
DEMUXER: freeing demuxer at 0x828bfa0  
==> Found audio stream: 0
demux_audio: audio data 0x186 - 0x0  
Audio file detected.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 14007)]
video_read_properties (sh_video=0x0) at video.c:31
31	demux_stream_t *d_video=sh_video->ds;
(gdb) bt
#0  video_read_properties (sh_video=0x0) at video.c:31
#1  0x08075c14 in main (argc=0, argv=0x0) at mencoder.c:
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x80ffb2e to 0x80ffb6e:
0x80ffb2e <mp_get_mp3_header+382>:	add    %bh,0x1(%eax)
0x80ffb34 <mp_get_mp3_header+388>:	
    jmp    0x80ffa53 <mp_get_mp3_header+163>
0x80ffb39 <mp_get_mp3_header+393>:	nop    
0x80ffb3a <mp_get_mp3_header+394>:	nop    
0x80ffb3b <mp_get_mp3_header+395>:	nop    
0x80ffb3c <video_read_properties>:	push   %ebp
0x80ffb3d <video_read_properties+1>:	mov    %esp,%ebp
0x80ffb3f <video_read_properties+3>:	sub    $0x48,%esp
0x80ffb42 <video_read_properties+6>:	mov    0x8(%ebp),%eax
0x80ffb45 <video_read_properties+9>:	mov    %ebx,0xfffffff4(%ebp)
0x80ffb48 <video_read_properties+12>:	mov    %esi,0xfffffff8(%ebp)
0x80ffb4b <video_read_properties+15>:	mov    %edi,0xfffffffc(%ebp)
0x80ffb4e <video_read_properties+18>:	mov    (%eax),%edi
0x80ffb50 <video_read_properties+20>:	mov    0x48(%edi),%ecx
0x80ffb53 <video_read_properties+23>:	mov    0x24(%ecx),%eax
0x80ffb56 <video_read_properties+26>:	cmp    $0x17,%eax
0x80ffb59 <video_read_properties+29>:	
    ja     0x80ffbbf <video_read_properties+131>
0x80ffb5b <video_read_properties+31>:	jmp    *0x81a6360(,%eax,4)
0x80ffb62 <video_read_properties+38>:	mov    0x8(%ebp),%esi
0x80ffb65 <video_read_properties+41>:	mov    0x7c(%esi),%edx
---Type <return> to continue, or q <return> to quit---
0x80ffb68 <video_read_properties+44>:	mov    0x10(%edx),%ebx
0x80ffb6b <video_read_properties+47>:	mov    %ebx,0x8(%esi)
End of assembler dump.
(gdb) info all-registers
eax            0x0	0
ecx            0x0	0
edx            0x828c940	136890688
ebx            0x827d990	136829328
esp            0xbfffe580	0xbfffe580
ebp            0xbfffe5c8	0xbfffe5c8
esi            0x828c808	136890376
edi            0x828c870	136890480
eip            0x80ffb4e	0x80ffb4e
eflags         0x10282	66178
cs             0x23	35
ss             0x2b	43
ds             0x2b	43
es             0x2b	43
fs             0x0	0
gs             0x0	0
st0            0	(raw 0x00000000000000000000)
st1            0	(raw 0x00000000000000000000)
st2            0	(raw 0x00000000000000000000)
st3            0	(raw 0x00000000000000000000)
st4            0	(raw 0x00000000000000000000)
st5            0	(raw 0x00000000000000000000)
st6            0	(raw 0x00000000000000000000)
---Type <return> to continue, or q <return> to quit---
st7            0	(raw 0x00000000000000000000)
fctrl          0x37f	895
fstat          0x0	0
ftag           0xffff	65535
fiseg          0x23	35
fioff          0x80758b8	134699192
foseg          0x2b	43
fooff          0xbfffe690	-1073748336
fop            0x0	0
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 = {
---Type <return> to continue, or q <return> to quit---
    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 = {
---Type <return> to continue, or q <return> to quit---
    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}
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       0xffffffff	-1
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 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm2            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
---Type <return> to continue, or q <return> to quit---
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 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

---------------------------------------

problem: mencoder generates a segmentaion fault when
         copying mp3 files

Distro: FreeBSD 4.6-STABLE
Kernel: FreeBSD 4.6-STABLE

mencoder version: MEncoder 0.90pre8-2.95.4

X: 4.1.0

gcc: 2.95.4

ld: GNU ld version 2.11.2

as: GNU assembler version 2.11.2

sample command:
   mencoder stuff.mp3 -oac copy -o stuff-rep.mp3

GBD Output:

lmcdowel at nomad:~$ gdb mencoder
GNU gdb 4.18 (FreeBSD)
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 "i386-unknown-freebsd"...
(no debugging symbols found)...
(gdb) run -v art.mp3 -oac copy -o stuff.mp3
Starting program: /usr/local/bin/mencoder -v art.mp3 -oac copy -o
stuff.mp3
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...


MEncoder 0.90pre8-2.95.4 (C) 2000-2002 Arpad Gereoffy (see DOCS!)

CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Family: 6,
Stepping: 3)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Reading /home/lmcdowel/.mplayer/codecs.conf: 38 audio & 106 video codecs
File not found: 'frameno.avi'
get_path('font/font.desc') -> '/home/lmcdowel/.mplayer/font/font.desc'
font: can't open file: /home/lmcdowel/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Not an URL!
File size is 43455905 bytes
success: format: 0  data: 0x0 - 0x29715A1
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x8334000  
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x8334000  
Checking for NuppelVideo
DEMUXER: freeing demuxer at 0x8334000  
Checking for MOV
DEMUXER: freeing demuxer at 0x8334000  
Checking for VIVO
header block 1 size: 67
DEMUXER: freeing demuxer at 0x8334000  
Checking for REAL
DEMUXER: freeing demuxer at 0x8334000  
DEMUXER: freeing demuxer at 0x8334000  
DEMUXER: freeing demuxer at 0x8334000  
DEMUXER: freeing demuxer at 0x8334000  
DEMUXER: freeing demuxer at 0x8334000  
Checking for SMJPEG
DEMUXER: freeing demuxer at 0x8334000  
Checking for PVA
DEMUXER: freeing demuxer at 0x8336000  
sync_mpeg_ps: seems to be MP3 stream...
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)  
MPEG packet stats: p100: 0  p101: 0  PES: 1  MP3: 1061 
Not MPEG System Stream format... (maybe Transport Stream?)
DEMUXER: freeing demuxer at 0x8336000  
==> Found audio stream: 0
demux_audio: audio data 0x17F - 0x0  
Detected audio file!
(no debugging symbols found)...(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
0x8119f10 in video_read_properties ()
(gdb) bt
#0  0x8119f10 in video_read_properties ()
#1  0x805c622 in main ()
#2  0x805bd5d in _start ()
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x8119ef0 to 0x8119f30:
0x8119ef0 <mp_get_mp3_header+348>:	cld    
0x8119ef1 <mp_get_mp3_header+349>:	mov    0xc(%ebp),%ecx
0x8119ef4 <mp_get_mp3_header+352>:	mov    %eax,(%ecx)
0x8119ef6 <mp_get_mp3_header+354>:	mov    0xfffffff8(%ebp),%eax
0x8119ef9 <mp_get_mp3_header+357>:	lea    0xffffffd8(%ebp),%esp
0x8119efc <mp_get_mp3_header+360>:	pop    %ebx
0x8119efd <mp_get_mp3_header+361>:	pop    %esi
0x8119efe <mp_get_mp3_header+362>:	pop    %edi
0x8119eff <mp_get_mp3_header+363>:	leave  
0x8119f00 <mp_get_mp3_header+364>:	ret    
0x8119f01 <mp_get_mp3_header+365>:	lea    0x0(%esi),%esi
0x8119f04 <video_read_properties>:	push   %ebp
0x8119f05 <video_read_properties+1>:	mov    %esp,%ebp
0x8119f07 <video_read_properties+3>:	sub    $0x1c,%esp
0x8119f0a <video_read_properties+6>:	push   %edi
0x8119f0b <video_read_properties+7>:	push   %esi
0x8119f0c <video_read_properties+8>:	push   %ebx
0x8119f0d <video_read_properties+9>:	mov    0x8(%ebp),%eax
0x8119f10 <video_read_properties+12>:	mov    (%eax),%edi
0x8119f12 <video_read_properties+14>:	mov    0x4c(%edi),%eax
0x8119f15 <video_read_properties+17>:	mov    0x24(%eax),%eax
0x8119f18 <video_read_properties+20>:	dec    %eax
---Type <return> to continue, or q <return> to quit---
0x8119f19 <video_read_properties+21>:	cmp    $0x16,%eax
0x8119f1c <video_read_properties+24>:	
    ja     0x811a294 <video_read_properties+912>
0x8119f22 <video_read_properties+30>:	jmp    *0x81a0b40(,%eax,4)
0x8119f29 <video_read_properties+37>:	lea    0x0(%esi),%esi
0x8119f2c <video_read_properties+40>:	mov    0x8(%ebp),%edx
0x8119f2f <video_read_properties+43>:	mov    0x74(%edx),%eax
End of assembler dump.

(gdb) info all-registers
eax            0x0	0
ecx            0x831f680	137492096
edx            0x8336000	137584640
ebx            0x831f700	137492224
esp            0xbfbfe74c	0xbfbfe74c
ebp            0xbfbfe774	0xbfbfe774
esi            0x831f780	137492352
edi            0x8337000	137588736
eip            0x8119f10	0x8119f10
eflags         0x210292	2163346
cs             0x1f	31
ss             0x2f	47
ds             0x2f	47
es             0x2f	47
fs             0x2f	47
gs             0x2f	47
(gdb) 
eax            0x0	0
ecx            0x831f680	137492096
edx            0x8336000	137584640
ebx            0x831f700	137492224
esp            0xbfbfe74c	0xbfbfe74c
ebp            0xbfbfe774	0xbfbfe774
esi            0x831f780	137492352
edi            0x8337000	137588736
eip            0x8119f10	0x8119f10
eflags         0x210292	2163346
cs             0x1f	31
ss             0x2f	47
ds             0x2f	47
es             0x2f	47
fs             0x2f	47
gs             0x2f	47




More information about the MPlayer-users mailing list