[MPlayer-advusers] ogg stream: reproducible crash in r24096
Dominik 'Rathann' Mierzejewski
dominik at rangers.eu.org
Sat Aug 18 22:05:48 CEST 2007
http://www.gnu.org/fun/jokes/eternal-flame.ogg
Looks like a bug in ffvorbis, because both tremor and libvorbis play it fine.
ffplay crashes in the same place.
[rathann at ryvius ~/cvs/mplayer/mplayer]$ gdb ./mplayer
GNU gdb Red Hat Linux (6.6-15.fc7rh)
Copyright (C) 2006 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 "x86_64-redhat-linux-gnu"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) run -v http://www.gnu.org/fun/jokes/eternal-flame.ogg
Starting program: /home/rathann/cvs/mplayer/mplayer/mplayer -v http://www.gnu.org/fun/jokes/eternal-flame.ogg
[Thread debugging using libthread_db enabled]
[New Thread 46912496194608 (LWP 22874)]
MPlayer dev-SVN-r24096-4.1.2 (C) 2000-2007 MPlayer Team
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (Family: 15, Model: 35, 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/rathann/.mplayer/codecs.conf'
Reading /home/rathann/.mplayer/codecs.conf: Can't open '/home/rathann/.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.
Configuration: --enable-debug=3
CommandLine: '-v' 'http://www.gnu.org/fun/jokes/eternal-flame.ogg'
get_path('font/font.desc') -> '/home/rathann/.mplayer/font/font.desc'
font: can't open file: /home/rathann/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Using nanosleep() timing
get_path('input.conf') -> '/home/rathann/.mplayer/input.conf'
Parsing input config file /home/rathann/.mplayer/input.conf
Input config file /home/rathann/.mplayer/input.conf parsed: 62 binds
get_path('eternal-flame.ogg.conf') -> '/home/rathann/.mplayer/eternal-flame.ogg.conf'
Playing http://www.gnu.org/fun/jokes/eternal-flame.ogg.
get_path('sub/') -> '/home/rathann/.mplayer/sub/'
Filename for url is now http://www.gnu.org/fun/jokes/eternal-flame.ogg
Filename for url is now http://www.gnu.org/fun/jokes/eternal-flame.ogg
STREAM_HTTP(1), URL: http://www.gnu.org/fun/jokes/eternal-flame.ogg
Resolving www.gnu.org for AF_INET6...
Couldn't resolve name for AF_INET6: www.gnu.org
Resolving www.gnu.org for AF_INET...
Connecting to server www.gnu.org[199.232.41.10]: 80...
--- HTTP DEBUG HEADER --- START ---
protocol: [HTTP/1.1]
http minor version: [1]
uri: [(null)]
method: [(null)]
status code: [200]
reason phrase: [OK]
body size: [0]
Fields:
0 - Date: Sat, 18 Aug 2007 12:53:13 GMT
1 - Server: Apache/2.0.55
2 - Last-Modified: Tue, 13 Feb 2001 01:22:25 GMT
3 - ETag: "1e4106-541c11-f0ef640"
4 - Accept-Ranges: bytes
5 - Content-Length: 5512209
6 - Connection: close
7 - Content-Type: application/ogg
--- HTTP DEBUG HEADER --- END ---
Content-Type: [application/ogg]
Content-Length: [5512209]
Cache size set to 320 KBytes
STREAM: [null] http://www.gnu.org/fun/jokes/eternal-flame.ogg
STREAM: Description: http streaming
STREAM: Author: Bertrand, Albeau, Reimar Doeffinger, Arpi?
STREAM: Comment: plain http
[Detaching after fork from child process 22877. (Try `set detach-on-fork off'.)]
CACHE_PRE_INIT: 0 [0] 0 pre:65536 eof:0
Cache fill: 7.50% (24576 bytes)
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 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=224
fixup_vorbis_wf: i=2, size=4378
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: 224, offset: 33
demux_ogg, i=2, bytes: 4378, offset: 257
demux_ogg, extradata size: 4635
demux_ogg, vorbis stream features are: channels: 2, srate: 44100, bitrate: 20000, max: 0, nominal: 160000, min: 0
Ogg file format detected.
Clip info:
Name: =The Eternal Flame
Artist: =Julia Ecklar and Bob Kanefsky
Creation Date: =1999
Album: =Roundworm
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
dec_audio: Allocating 192000 + 65536 = 257536 bytes for output buffer.
FFmpeg's libavcodec audio codec
INFO: libavcodec init OK!
AUDIO: 44100 Hz, 2 ch, s16le, 160.0 kbit/11.34% (ratio: 20000->176400)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis 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
ao2: 44100 Hz 2 chans s16le
audio_setup: using '/dev/dsp' dsp device
audio_setup: using '/dev/mixer' mixer device
audio_setup: using 'pcm' mixer device
[AO OSS] audio_setup: Can't open audio device /dev/dsp: Device or resource busy
Opening /dev/dvb/adapter0/audio0
DVB AUDIO DEVICE: No such file or directory
AO: [null] 44100Hz 2ch s16le (2 bytes per sample)
AO: Description: Null audio output
AO: Author: Tobias Diedrich <ranma+mplayer at tdiedrich.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...
[vorbis @ 0xc57dc0]floor0 dec: booknumber too high!
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912496194608 (LWP 22874)]
0x000000000079ad8f in vorbis_floor0_decode (vc=<value optimized out>, vfu=0xe44860, vec=0xe36780) at bitstream.h:885
885 GET_VLC(code, re, s, table, bits, max_depth)
(gdb) bt
#0 0x000000000079ad8f in vorbis_floor0_decode (vc=<value optimized out>, vfu=0xe44860, vec=0xe36780)
at bitstream.h:885
#1 0x000000000079b351 in vorbis_parse_audio_packet (vc=0xe31990) at vorbis_dec.c:1449
#2 0x000000000079bb38 in vorbis_decode_frame (avccontext=<value optimized out>, data=0xdf3350,
data_size=0x7fffa04bb654, buf=0x5 <Address 0x5 out of bounds>, buf_size=35) at vorbis_dec.c:1596
#3 0x00000000005b01ef in avcodec_decode_audio2 (avctx=0xdddca0, samples=0x3d, frame_size_ptr=0xbeb8442abf6ed89e,
buf=0x2168676968206f6f <Address 0x2168676968206f6f out of bounds>, buf_size=8) at utils.c:968
#4 0x00000000004b7580 in decode_audio (sh_audio=0xdda2e0, buf=0xdf3350 "", minlen=63232, maxlen=250880)
at ad_ffmpeg.c:161
#5 0x000000000047e608 in decode_audio (sh_audio=0xdda2e0, buf=0xe4bb90 "", minlen=<value optimized out>,
maxlen=<value optimized out>) at dec_audio.c:389
#6 0x0000000000431df2 in main (argc=<value optimized out>, argv=<value optimized out>) at mplayer.c:1780
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x79ad6f to 0x79adaf:
0x000000000079ad6f <vorbis_floor0_decode+351>: add %cl,0xfffffffff0891073(%rbx)
0x000000000079ad75 <vorbis_floor0_decode+357>: mov %esi,%ecx
0x000000000079ad77 <vorbis_floor0_decode+359>: sar $0x3,%eax
0x000000000079ad7a <vorbis_floor0_decode+362>: and $0x7,%ecx
0x000000000079ad7d <vorbis_floor0_decode+365>: cltq
0x000000000079ad7f <vorbis_floor0_decode+367>: mov (%r11,%rax,1),%eax
0x000000000079ad83 <vorbis_floor0_decode+371>: shr %cl,%eax
0x000000000079ad85 <vorbis_floor0_decode+373>: and %r15d,%eax
0x000000000079ad88 <vorbis_floor0_decode+376>: cltq
0x000000000079ad8a <vorbis_floor0_decode+378>: lea 0x0(%rbp,%rax,4),%rax
0x000000000079ad8f <vorbis_floor0_decode+383>: movswl 0x2(%rax),%ecx
0x000000000079ad93 <vorbis_floor0_decode+387>: movswl (%rax),%edi
0x000000000079ad96 <vorbis_floor0_decode+390>: mov %ecx,%eax
0x000000000079ad98 <vorbis_floor0_decode+392>: shr $0x1f,%eax
0x000000000079ad9b <vorbis_floor0_decode+395>: test %al,0x4b(%rsp)
0x000000000079ad9f <vorbis_floor0_decode+399>: je 0x79ae18 <vorbis_floor0_decode+520>
0x000000000079ada1 <vorbis_floor0_decode+401>: add 0x40(%rsp),%esi
0x000000000079ada5 <vorbis_floor0_decode+405>: mov %ecx,%r10d
0x000000000079ada8 <vorbis_floor0_decode+408>: mov %r14d,%edx
0x000000000079adab <vorbis_floor0_decode+411>: neg %r10d
0x000000000079adae <vorbis_floor0_decode+414>: mov %r10d,%ecx
End of assembler dump.
(gdb) info all-registers
rax 0x3f6ed89ebebf11a6 4570828848144257446
rbx 0xe31998 14883224
rcx 0x5 5
rdx 0xbeb8442abf6ed89e -4703934860397455202
rsi 0x3d 61
rdi 0x7fffa04bac30 140735882701872
rbp 0x3f6ed89ebeb8442a 0x3f6ed89ebeb8442a
rsp 0x7fffa04bb420 0x7fffa04bb420
r8 0x8 8
r9 0x0 0
r10 0x2168676968206f6f 2407287703245713263
r11 0xddbb30 14531376
r12 0x8 8
r13 0xe44860 14960736
r14 0xffffffff 4294967295
r15 0x7ffff 524287
rip 0x79ad8f 0x79ad8f <vorbis_floor0_decode+383>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
st0 <invalid float value> (raw 0xffff0000000000000000)
st1 <invalid float value> (raw 0xffff0000000000000000)
st2 -nan(0x8000000080000000) (raw 0xffff8000000080000000)
st3 -nan(0x8000000080000000) (raw 0xffff8000000080000000)
st4 -nan(0x8000000080000000) (raw 0xffff8000000080000000)
st5 <invalid float value> (raw 0xffff0000000000000000)
st6 <invalid float value> (raw 0xffff0000000000000000)
st7 -nan(0x080000000) (raw 0xffff0000000080000000)
fctrl 0x37f 895
fstat 0x0 0
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 = {0x9f, 0x2a, 0xf3, 0x34, 0x53,
0x65, 0x9e, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x2a9f, 0x34f3, 0x6553, 0x3e9e, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0x34f32a9f, 0x3e9e6553, 0x0, 0x0}, v2_int64 = {0x3e9e655334f32a9f, 0x0},
uint128 = 0x00000000000000003e9e655334f32a9f}
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, 0xfffffffe, 0x0, 0x0}, v2_double = {0xfffffffffffffff2, 0x0}, v16_int8 = {0xfe, 0x9b,
0x9d, 0x1c, 0xd, 0x37, 0x2d, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9bfe, 0x1c9d, 0x370d,
---Type <return> to continue, or q <return> to quit---
0xc02d, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x1c9d9bfe, 0xc02d370d, 0x0, 0x0}, v2_int64 = {0xc02d370d1c9d9bfe, 0x0},
uint128 = 0x0000000000000000c02d370d1c9d9bfe}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x58, 0x90, 0xc3, 0xa4, 0x2c,
0xae, 0x54, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9058, 0xa4c3, 0xae2c, 0x3c54, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0xa4c39058, 0x3c54ae2c, 0x0, 0x0}, v2_int64 = {0x3c54ae2ca4c39058, 0x0},
uint128 = 0x00000000000000003c54ae2ca4c39058}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x29, 0xe4, 0x6c, 0x96, 0xb2,
0xd3, 0xb5, 0xbe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe429, 0x966c, 0xd3b2, 0xbeb5, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0x966ce429, 0xbeb5d3b2, 0x0, 0x0}, v2_int64 = {0xbeb5d3b2966ce429, 0x0},
uint128 = 0x0000000000000000beb5d3b2966ce429}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0xa3, 0xd9, 0xad, 0xcd,
0xfb, 0x22, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xa300, 0xadd9, 0xfbcd, 0x3e22, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0xadd9a300, 0x3e22fbcd, 0x0, 0x0}, v2_int64 = {0x3e22fbcdadd9a300, 0x0},
uint128 = 0x00000000000000003e22fbcdadd9a300}
xmm6 {v4_float = {0x0, 0xfffffffe, 0x0, 0x0}, v2_double = {0xfffffffffffffff2, 0x0}, v16_int8 = {0xfe, 0x9b,
0x9d, 0x1c, 0xd, 0x37, 0x2d, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9bfe, 0x1c9d, 0x370d,
0xc02d, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x1c9d9bfe, 0xc02d370d, 0x0, 0x0}, v2_int64 = {0xc02d370d1c9d9bfe, 0x0},
uint128 = 0x0000000000000000c02d370d1c9d9bfe}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x20, 0x61, 0xb4, 0x10, 0x51,
0x1f, 0x62, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x6120, 0x10b4, 0x1f51, 0x3f62, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0x10b46120, 0x3f621f51, 0x0, 0x0}, v2_int64 = {0x3f621f5110b46120, 0x0},
uint128 = 0x00000000000000003f621f5110b46120}
xmm8 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x39, 0xe2, 0xd9, 0xed, 0x6b,
0xc1, 0x56, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe239, 0xedd9, 0xc16b, 0x3f56, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0xedd9e239, 0x3f56c16b, 0x0, 0x0}, v2_int64 = {0x3f56c16bedd9e239, 0x0},
uint128 = 0x00000000000000003f56c16bedd9e239}
xmm9 {v4_float = {0x0, 0x2, 0x0, 0x0}, v2_double = {0x3, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x73, 0xbd,
0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x8000, 0xbd73, 0x4008, 0x0, 0x0, 0x0, 0x0},
v4_int32 = {0x80000000, 0x4008bd73, 0x0, 0x0}, v2_int64 = {0x4008bd7380000000, 0x0},
uint128 = 0x00000000000000004008bd7380000000}
xmm10 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0xe0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3fe0, 0x0, 0x0, 0x0, 0x0},
v4_int32 = {0x0, 0x3fe00000, 0x0, 0x0}, v2_int64 = {0x3fe0000000000000, 0x0},
uint128 = 0x00000000000000003fe0000000000000}
xmm11 {v4_float = {0x53500000, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x35, 0x55, 0x55, 0x55,
0x55, 0x55, 0xa5, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x5535, 0x5555, 0x5555, 0x3fa5, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x55555535, 0x3fa55555, 0x0, 0x0}, v2_int64 = {0x3fa5555555555535, 0x0},
uint128 = 0x00000000000000003fa5555555555535}
xmm12 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x2f, 0x87, 0x29, 0xe8, 0x10,
0x11, 0x81, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x872f, 0xe829, 0x1110, 0x3f81, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0xe829872f, 0x3f811110, 0x0, 0x0}, v2_int64 = {0x3f811110e829872f, 0x0},
uint128 = 0x00000000000000003f811110e829872f}
xmm13 {v4_float = {0x51500000, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x15, 0x55, 0x55, 0x55,
0x55, 0x55, 0xc5, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x5515, 0x5555, 0x5555, 0x3fc5, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x55555515, 0x3fc55555, 0x0, 0x0}, v2_int64 = {0x3fc5555555555515, 0x0},
uint128 = 0x00000000000000003fc5555555555515}
xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xa3, 0xe4, 0xc8, 0x72, 0x29,
0xd1, 0xd2, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe4a3, 0x72c8, 0xd129, 0x39d2, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0x72c8e4a3, 0x39d2d129, 0x0, 0x0}, v2_int64 = {0x39d2d12972c8e4a3, 0x0},
---Type <return> to continue, or q <return> to quit---
uint128 = 0x000000000000000039d2d12972c8e4a3}
xmm15 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x12, 0x46, 0xb, 0x11, 0xf5,
0x21, 0xa9, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x4612, 0x110b, 0x21f5, 0x3fa9, 0x0, 0x0,
0x0, 0x0}, v4_int32 = {0x110b4612, 0x3fa921f5, 0x0, 0x0}, v2_int64 = {0x3fa921f5110b4612, 0x0},
uint128 = 0x00000000000000003fa921f5110b4612}
mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
(gdb) q
The program is running. Exit anyway? (y or n) y
--
MPlayer developer and RPMs maintainer: http://mplayerhq.hu http://rpm.livna.org
There should be a science of discontent. People need hard times and
oppression to develop psychic muscles.
-- from "Collected Sayings of Muad'Dib" by the Princess Irulan
More information about the MPlayer-advusers
mailing list