[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