[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