[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