[MPlayer-users] Bug: SIGSEGV while trying to play .ogg

Sebastian Krämer spambouncer at skraemer.de
Sat Jun 17 14:46:11 CEST 2006


Savchenko Andrew wrote:
> Hi all!
> 
> Recent version MPlayer dev-SVN-r18739-4.0.2 crashes when trying to play 
> any ogg file. Here is gdb output of mplayer -v file.ogg:

I can confirm that crash. Here's the gdb run:

$ gdb mplayer
GNU gdb 6.4
Copyright 2005 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"...Using host libthread_db
library "/lib/libthread_db.so.1".

(gdb) run -v audio.ogg
Starting program: /usr/local/bin/mplayer -v audio.ogg
[Thread debugging using libthread_db enabled]
[New Thread -1231824256 (LWP 19465)]
MPlayer dev-SVN-r18739-3.4.6 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(TM) XP 2600+ (Family: 6, Model: 10, Stepping: 0)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE

get_path('codecs.conf') -> '/home/sebi/.mplayer/codecs.conf'
Reading /home/sebi/.mplayer/codecs.conf: Can't open
'/home/sebi/.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' 'audio.ogg'
init_freetype
get_path('font/font.desc') -> '/home/sebi/.mplayer/font/font.desc'
Font /home/sebi/.mplayer/font/font.desc loaded successfully! (206 chars)
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Using Linux hardware RTC timing (1024Hz).
get_path('input.conf') -> '/home/sebi/.mplayer/input.conf'
Parsing input config file /home/sebi/.mplayer/input.conf
Input config file /home/sebi/.mplayer/input.conf parsed: 55 binds
Setting up LIRC support...
get_path('audio.ogg.conf') -> '/home/sebi/.mplayer/audio.ogg.conf'

Playing audio.ogg.
get_path('sub/') -> '/home/sebi/.mplayer/sub/'
[file] File size is 8485493 bytes
STREAM: [file] audio.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): 11822916
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=3861
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: 3861, offset: 78
demux_ogg, extradata size: 3939
demux_ogg, vorbis stream features are: channels: 2, srate: 44100,
bitrate: 32000, max: 0, nominal: 256000, min: 0
Ogg file format detected.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1231824256 (LWP 19465)]
demux_ogg_control (demuxer=0x870efb0, cmd=10, arg=0xbff62d00) at
demux_ogg.c:1651
1651        rate =
(float)((ov_struct_t*)((sh_audio_t*)demuxer->audio->sh)->context)->vi.rate;
(gdb) bt
#0  demux_ogg_control (demuxer=0x870efb0, cmd=10, arg=0xbff62d00) at
demux_ogg.c:1651
#1  0x0815a255 in demuxer_get_time_length (demuxer=0x870c738) at
demuxer.c:992
#2  0x0807eced in main (argc=3, argv=0xbff63ff4) at mplayer.c:3464
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x817dfaf to 0x817dfef:
0x0817dfaf <demux_ogg_control+207>:     jne    0x817dfa9
<demux_ogg_control+201>
0x0817dfb1 <demux_ogg_control+209>:     mov    0xfffffffc(%ebp),%edi
0x0817dfb4 <demux_ogg_control+212>:     jmp    0x817df78
<demux_ogg_control+152>
0x0817dfb6 <demux_ogg_control+214>:     mov    0x34(%edx),%eax
0x0817dfb9 <demux_ogg_control+217>:     xorps  %xmm0,%xmm0
0x0817dfbc <demux_ogg_control+220>:     imul   $0x198,0x48(%eax),%edx
0x0817dfc3 <demux_ogg_control+227>:     mov    0x60(%eax),%eax
0x0817dfc6 <demux_ogg_control+230>:     mov    0xa4(%eax),%eax
0x0817dfcc <demux_ogg_control+236>:     add    0x2c(%ecx),%edx
0x0817dfcf <demux_ogg_control+239>:     cvtsi2ss 0x8(%eax),%xmm0
0x0817dfd4 <demux_ogg_control+244>:     jmp    0x817df19
<demux_ogg_control+57>
0x0817dfd9 <demux_ogg_control+249>:     lea    0x0(%esi),%esi
0x0817dfe0 <demux_ogg_control+256>:     jl     0x817dff0
<demux_ogg_control+272>
0x0817dfe2 <demux_ogg_control+258>:     cmp    $0x0,%ebx
0x0817dfe5 <demux_ogg_control+261>:     ja     0x817df3b
<demux_ogg_control+91>
0x0817dfeb <demux_ogg_control+267>:     nop
0x0817dfec <demux_ogg_control+268>:     lea    0x0(%esi),%esi
End of assembler dump.
(gdb) info all-registers
eax            0x0      0
ecx            0x8708580        141591936
edx            0x870efb0        141619120
ebx            0x870c738        141608760
esp            0xbff62cb0       0xbff62cb0
ebp            0xbff62ce8       0xbff62ce8
esi            0xa      10
edi            0xbff62d00       -1074385664
eip            0x817dfcf        0x817dfcf <demux_ogg_control+239>
eflags         0x210202 2163202
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        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            0        (raw 0x00000000000000000000)
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x20     32
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}
---Type <return> to continue, or q <return> to quit---
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}}
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}}
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}}
(gdb) quit

Some more system info:

Gentoo x86 stable

$uname -a
Linux locutus 2.6.16-suspend2-r8 #1 PREEMPT Thu Jun 8 04:24:34 CEST 2006
i686 AMD Athlon(TM) XP 2600+ GNU/Linux

$ ls -l /lib/libc[.-]*
-rwxr-xr-x 1 root root 1202712 Apr 29 23:02 /lib/libc-2.3.6.so
lrwxrwxrwx 1 root root      13 Apr 29 23:02 /lib/libc.so.6 -> libc-2.3.6.so

$ as --version
GNU assembler 2.16.1
Copyright 2005 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           : 10
model name      : AMD Athlon(TM) XP 2600+
stepping        : 0
cpu MHz         : 1916.821
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 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
bogomips        : 3838.30

$ cat /proc/asound/cards
 0 [Live           ]: EMU10K1 - SBLive! Value [CT4832]
                      SBLive! Value [CT4832] (rev.8, serial:0x80271102)
at 0xd800, irq 6

ALSA version 1.0.11


Hope that helps. If I get to it, I might do some regression testing.

Sebastian





More information about the MPlayer-users mailing list