[MPlayer-users] [BUG] Vorbis decoding causes crash
Panagiotis Issaris
panagiotis at gmail.com
Sun Mar 26 03:32:51 CEST 2006
Hi,
[Although I now can succesfully decode Vorbis and AC3 files, I'm still
posting this bugreport as bug still appears consistently when using dynamic
libs]
When trying to play any Ogg Vorbis files, mplayer fails to do to, reporting
a signal 11 in the decode_audio module. I'm using current CVS (same as in my
previous bugreport) with exactly the same configuration as in my previous
bugreport earlier today (a few hours ago:
http://article.gmane.org/gmane.comp.video.mplayer.user/42646).
Please note, that although AC3 and Ogg Vorbis cause problems with mplayer on
my systems, other codecs (such as MP3, MP2, FLAC, H.264, MPEG-1/2/4, ...)
work fine. The playback issues with AC3 have existed on my system for a long
time (at the very least 4 months).The Vorbis playback problems on my system
are rather new, I can't recall seeing them earlier then a month or two ago.
I do have the same Vorbis playback system on my system at work which has a
different configuration (Ubuntu Breezy on a P4) and on a third system
(Ubuntu Breezy on a Sempron) both Ogg Vorbis and AC3 play just fine. On all
of my systems Ogg Vorbis and AC3 files play
just fine using ffplay. Regarding my previous mail on AC3 problems: I also
had and have issues with playing DVDs with AC3 audio. I can only play DVDs
with the -nosound option if they contain AC3 sound.
Update: Okay, I just found out why it was playing okay on my Sempron and not
on my other systems when updating the Sempron system to current CVS/SVN for
x264, ffmpeg and mplayer: I was using the dynamic libav* libraries on the
systems where it crashed and on the systems where it worked, I had copied
the libavcodec, libavformat and libavutil directories into the mplayer
directory. Okay, I knew it was recommended to use this method instead of
using the dynamic libav* libs, but I figured that this was performance
related. I didn't know using the dynamic libs would actually cause mplayer
to crash for certain codecs on certain systems. While using dynamic libs
on the Sempron system, AC3 and Vorbis decoding now also caused mplayer to
crash, just as on the P4 and Athlon64 X2. So, it appears that on all my
systems using libav*so causes mplayer to crash when decoding Vorbis and AC3
files.
takis at poseidon:~$ /usr/local/bin/mplayer -v t01.ogg
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale
MPlayer dev-CVS-060325-20:11-4.0.3 (C) 2000-2006 MPlayer Team
CPU: Advanced Micro Devices Athlon 64 X2 Manchester,Toledo (Family: 15,
Stepping: 2)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2
get_path('codecs.conf') -> '/home/takis/.mplayer/codecs.conf'
Reading /home/takis/.mplayer/codecs.conf: Can't open
'/home/takis/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open
'/usr/local/etc/mplayer/codecs.conf': No such file or directory
Using built-in default codecs.conf.
CommandLine: '-v' 't01.ogg'
init_freetype
get_path('font/font.desc') -> '/home/takis/.mplayer/font/font.desc'
font: can't open file: /home/takis/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Failed to open /dev/rtc: No such file or directory (it should be readable by
the user.)
Using nanosleep() timing
get_path('input.conf') -> '/home/takis/.mplayer/input.conf'
Can't open input config file /home/takis/.mplayer/input.conf: No such file
or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file
or directory
Falling back on default (hardcoded) input config
get_path('t01.ogg.conf') -> '/home/takis/.mplayer/t01.ogg.conf'
Playing t01.ogg.
get_path('sub/') -> '/home/takis/.mplayer/sub/'
[file] File size is 1814348 bytes
STREAM: [file] t01.ogg
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for NuppelVideo
Checking for REAL
Checking for SMJPEG
==> Found audio stream: 0
[Ogg] stream 0: audio (Vorbis), -aid 0
Ogg stream length (granulepos): 9577344
Ogg demuxer : found 1 audio stream, 0 video stream and 0 text stream
fixup_vorbis_wf: i=0, size=30
fixup_vorbis_wf: i=1, size=45
fixup_vorbis_wf: i=2, size=3763
demux_ogg, offset after 1st len = 2
demux_ogg, offset after 2nd len = 3
demux_ogg, i=0, bytes: 30, offset: 3
demux_ogg, i=1, bytes: 45, offset: 33
demux_ogg, i=2, bytes: 3763, offset: 78
demux_ogg, extradata size: 3841
demux_ogg, vorbis stream features are: channels: 2, srate: 44100, bitrate:
8000, max: 0, nominal: 64000, min: 0
Ogg file format detected.
==========================================================================
Opening audio decoder: [libvorbis] Ogg/Vorbis audio decoder
dec_audio: Allocating 4096 + 65536 = 69632 bytes for output buffer.
ad_vorbis, extradata seems is 3841 bytes long
ad_vorbis, offset: 2, length: 30
ad_vorbis, offset: 3, length: 45
ad_vorbis, header sizes: 30 45 3763
OggVorbis: Bitstream is 2 channels, 44100Hz, 64000bit/s VBR
OggVorbis: Encoded by: Xiph.Org libVorbis I 20050304
OggVorbis: Init OK!
AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000->176400)
Selected audio codec: [vorbis] afm: libvorbis (OggVorbis Audio Decoder)
==========================================================================
Building audio filter chain for 44100Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
AO: Description: EsounD audio output
AO: Author: Juergen Keil <jk at tools.de>
Building audio filter chain for 44100Hz/2ch/s16le -> 44100Hz/2ch/s16le...
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
Video: no video
Freeing 0 unused video chunks.
Starting playback...
MPlayer interrupted by signal 11 in module: decode_audio
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in
DOCS/HTML/en/bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't
and
won't help unless you provide this information when reporting a possible
bug.
Uninit audio filters...
[libaf] Removing filter dummy
It hangs and doesn't return to a bash-prompt. Hitting ctrl-c gives me:
MPlayer interrupted by signal 2 in module: uninit_acodec
But it still hangs.Killall -9 mplayer helps.
(gdb) r -v t01.ogg
Starting program: /usr/local/src/mplayer/mplayer -v t01.ogg
[Thread debugging using libthread_db enabled]
[New Thread 1980753632 (LWP 11118)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale
MPlayer dev-CVS-060325-20:11-4.0.3 (C) 2000-2006 MPlayer Team
CPU: Advanced Micro Devices Athlon 64 X2 Manchester,Toledo (Family: 15,
Stepping: 2)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2
get_path('codecs.conf') -> '/home/takis/.mplayer/codecs.conf'
Reading /home/takis/.mplayer/codecs.conf: Can't open
'/home/takis/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open
'/usr/local/etc/mplayer/codecs.conf': No such file or directory
Using built-in default codecs.conf.
CommandLine: '-v' 't01.ogg'
init_freetype
get_path('font/font.desc') -> '/home/takis/.mplayer/font/font.desc'
font: can't open file: /home/takis/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Failed to open /dev/rtc: No such file or directory (it should be readable by
the user.)
Using nanosleep() timing
get_path('input.conf') -> '/home/takis/.mplayer/input.conf'
Can't open input config file /home/takis/.mplayer/input.conf: No such file
or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file
or directory
Falling back on default (hardcoded) input config
get_path('t01.ogg.conf') -> '/home/takis/.mplayer/t01.ogg.conf'
Playing t01.ogg.
get_path('sub/') -> '/home/takis/.mplayer/sub/'
[file] File size is 1814348 bytes
STREAM: [file] t01.ogg
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for NuppelVideo
Checking for REAL
Checking for SMJPEG
==> Found audio stream: 0
[Ogg] stream 0: audio (Vorbis), -aid 0
Ogg stream length (granulepos): 9577344
Ogg demuxer : found 1 audio stream, 0 video stream and 0 text stream
fixup_vorbis_wf: i=0, size=30
fixup_vorbis_wf: i=1, size=45
fixup_vorbis_wf: i=2, size=3763
demux_ogg, offset after 1st len = 2
demux_ogg, offset after 2nd len = 3
demux_ogg, i=0, bytes: 30, offset: 3
demux_ogg, i=1, bytes: 45, offset: 33
demux_ogg, i=2, bytes: 3763, offset: 78
demux_ogg, extradata size: 3841
demux_ogg, vorbis stream features are: channels: 2, srate: 44100, bitrate:
8000, max: 0, nominal: 64000, min: 0
Ogg file format detected.
==========================================================================
Opening audio decoder: [libvorbis] Ogg/Vorbis audio decoder
dec_audio: Allocating 4096 + 65536 = 69632 bytes for output buffer.
ad_vorbis, extradata seems is 3841 bytes long
ad_vorbis, offset: 2, length: 30
ad_vorbis, offset: 3, length: 45
ad_vorbis, header sizes: 30 45 3763
OggVorbis: Bitstream is 2 channels, 44100Hz, 64000bit/s VBR
OggVorbis: Encoded by: Xiph.Org libVorbis I 20050304
OggVorbis: Init OK!
AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000->176400)
Selected audio codec: [vorbis] afm: libvorbis (OggVorbis Audio Decoder)
==========================================================================
Building audio filter chain for 44100Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
AO: Description: EsounD audio output
AO: Author: Juergen Keil <jk at tools.de>
Building audio filter chain for 44100Hz/2ch/s16le -> 44100Hz/2ch/s16le...
[dummy] Was reinitialized: 44100Hz/2ch/s16le
[dummy] Was reinitialized: 44100Hz/2ch/s16le
Video: no video
Freeing 0 unused video chunks.
Starting playback...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1980753632 (LWP 11118)]
0x76e25b32 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0 0x76e25b32 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6
#1 0x76e2634a in free () from /lib/tls/i686/cmov/libc.so.6
#2 0x0813c92b in ds_fill_buffer (ds=0xec0) at demuxer.h:234
#3 0x0813cb18 in ds_get_packet (ds=0x82f52c0, start=0x7ff87ae8) at
demuxer.c:492
#4 0x080c2659 in decode_audio (sh=0x82ff788, buf=0x8303790 "",
minlen=65536, maxlen=69632) at ad_libvorbis.c:233
#5 0x080bceaf in decode_audio (sh_audio=0x82ff788, buf=0x832eef0 "",
minlen=65536, maxlen=<value optimized out>) at dec_audio.c:380
#6 0x0806ff5f in main (argc=3, argv=0x7ff88e34) at mplayer.c:3475
(gdb) disassemble $pc-32 $pc+32
Dump of assembler code from 0x76e25b12 to 0x76e25b52:
0x76e25b12 <malloc_usable_size+1426>: push %ebp
0x76e25b13 <malloc_usable_size+1427>: cwtl
0x76e25b14 <malloc_usable_size+1428>: je 0x76e25d33
<malloc_usable_size+1971>
0x76e25b1a <malloc_usable_size+1434>: mov 0xffffffdc(%ebp),%eax
0x76e25b1d <malloc_usable_size+1437>: testb $0x1,0x4(%edx,%eax,1)
0x76e25b22 <malloc_usable_size+1442>: jne 0x76e25d27
<malloc_usable_size+1959>
0x76e25b28 <malloc_usable_size+1448>: mov %edx,%eax
0x76e25b2a <malloc_usable_size+1450>: mov 0x8(%edx),%edx
0x76e25b2d <malloc_usable_size+1453>: mov %eax,%ecx
0x76e25b2f <malloc_usable_size+1455>: mov 0xc(%eax),%eax
0x76e25b32 <malloc_usable_size+1458>: cmp %ecx,0xc(%edx)
0x76e25b35 <malloc_usable_size+1461>: jne 0x76e26072
<malloc_usable_size+2802>
0x76e25b3b <malloc_usable_size+1467>: cmp %ecx,0x8(%eax)
0x76e25b3e <malloc_usable_size+1470>: jne 0x76e26072
<malloc_usable_size+2802>
0x76e25b44 <malloc_usable_size+1476>: mov %eax,0xc(%edx)
0x76e25b47 <malloc_usable_size+1479>: mov %edx,0x8(%eax)
0x76e25b4a <malloc_usable_size+1482>: mov 0xffffffdc(%ebp),%ecx
0x76e25b4d <malloc_usable_size+1485>: add %ecx,%edi
0x76e25b4f <malloc_usable_size+1487>: mov %edi,(%esi,%edi,1)
End of assembler dump.
(gdb) info all-registers
eax 0x2 2
ecx 0x82f7558 137327960
edx 0x0 0
ebx 0x76eedadc 1995365084
esp 0x7ff8798c 0x7ff8798c
ebp 0x7ff87a1c 0x7ff87a1c
esi 0x82f6698 137324184
edi 0xec0 3776
eip 0x76e25b32 0x76e25b32 <malloc_usable_size+1458>
eflags 0x210246 2163270
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0.0015339783814830186902741437850357376 (raw
0x3ff5c90fc5f6652a39a1)
st4 0.2800907029478458049780512095772167 (raw
0x3ffd8f680c72263854e4)
st5 0.2800907029478458049780512095772167 (raw
0x3ffd8f680c72263854e4)
st6 1 (raw 0x3fff8000000000000000)
st7 88200 (raw 0x400fac44000000000000)
fctrl 0x37f 895
fstat 0x4020 16416
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
mxcsr 0x1f80 8064
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}}
---Type <return> to continue, or q <return> to quit---
mm3 {uint64 = 0xc90fc5f6652a39a1, v2_int32 = {0x652a39a1,
0xc90fc5f6}, v4_int16 = {0x39a1, 0x652a, 0xc5f6, 0xc90f}, v8_int8 = {0xa1,
0x39, 0x2a,
0x65, 0xf6, 0xc5, 0xf, 0xc9}}
mm4 {uint64 = 0x8f680c72263854e4, v2_int32 = {0x263854e4,
0x8f680c72}, v4_int16 = {0x54e4, 0x2638, 0xc72, 0x8f68}, v8_int8 = {0xe4,
0x54, 0x38,
0x26, 0x72, 0xc, 0x68, 0x8f}}
mm5 {uint64 = 0x8f680c72263854e4, v2_int32 = {0x263854e4,
0x8f680c72}, v4_int16 = {0x54e4, 0x2638, 0xc72, 0x8f68}, v8_int8 = {0xe4,
0x54, 0x38,
0x26, 0x72, 0xc, 0x68, 0x8f}}
mm6 {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
0x80}}
mm7 {uint64 = 0xac44000000000000, v2_int32 = {0x0, 0xac440000},
v4_int16 = {0x0, 0x0, 0x0, 0xac44}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x44, 0xac}}
(gdb)
With friendly regards,
Takis
More information about the MPlayer-users
mailing list