I have been looking for an application that can play back static (not streamed) Speex (spx) files. I tried VLC (0.8.6b) but it gives up on all of them. I think there is a header-decoding bug as the key line seems to be
"PTS is out of range (4650988), dropping buffer"
Indeed, when I click on play with CTRL+I pre-opened, 4650988 flashes up as (for 10ms, it seems) as the bitrate! That's impossible as the file is 8KHz!
Links to speex-in-ogg files that can be used to duplicate this problem:
http://www.javasonics.com/demos/formats/speex_40_8k.spx
http://www.javasonics.com/demos/formats/speex_05_8k.spx
You will note that both files play great (but you can tell the effect of the quality param rather well) in http://www.foobar2000.org/ - so, the files are most certainly NOT corrupted/non-standard. Something is screwy with the VLC speex plugin.
Cheers,
Fil
I am planning to use speex with Moodle (a la MoodleSpeex) so a reliable source of a multi-platform player is critical.
LOG:------------------------------------------------------------
-- logger module started --
main debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU
main debug: looking for memcpy module: 3 candidates
main debug: using memcpy module "memcpymmxext"
main debug: waiting for thread completion
main debug: thread 3744 (playlist) created at priority 0 (playlist/playlist.c:184)
main debug: waiting for thread completion
main debug: thread 3760 (preparser) created at priority 0 (playlist/playlist.c:210)
main debug: looking for interface module: 1 candidate
main debug: using interface module "hotkeys"
main debug: thread 3784 (interface) created at priority 0 (interface/interface.c:231)
main debug: looking for interface module: 1 candidate
logger: VLC media player - version 0.8.6b Janus - (c) 1996-2007 the VideoLAN team
logger:
Warning: if you can't access the GUI anymore, open a command-line window, go to the directory where you installed VLC and run "vlc -I wx"
logger: using logger...
logger debug: opening logfile `C:\Documents and Settings\ankun\Desktop\vlc_log.txt'
main debug: using interface module "logger"
main debug: thread 3812 (interface) created at priority 0 (interface/interface.c:231)
main debug: looking for interface module: 3 candidates
main debug: using interface module "wxwidgets"
main debug: thread 3832 (manager) created at priority 0 (interface/interface.c:216)
wxwidgets debug: Using last windows config '(-1,0,0,1024,768)(0,132,132,355,94)(6,0,0,-1,150)'
wxwidgets debug: id=0 p=(132,132) s=(355,94)
wxwidgets debug: id=6 p=(0,0) s=(-1,150)
main debug: adding playlist item `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx' ( C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx )
main debug: creating new input thread
main debug: waiting for thread completion
main debug: creating statistics handler
main debug: thread 4480 (input) created at priority 1 (input/input.c:265)
main debug: drive letter C: found in source
main debug: `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx' gives access `' demux `' path `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: C:\Documents and Settings\ankun\Desktop\speex_40_8k.cue
vcd debug: could not find .cue file
access_file debug: opening file `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for demux2 module: 45 candidates
main debug: using demux2 module "ogg"
main debug: looking for a subtitle file in C:\Documents and Settings\ankun\Desktop\
main debug: `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx' successfully opened
ogg debug: found speex header, channels: 1, rate: 8000, bitrate: -1
main debug: selecting program id=0
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 4564 (decoder) created at priority 2 (input/decoder.c:159)
ogg debug: beginning of a group of logical streams
main debug: removing module "speex"
main debug: thread times: real 0m0.000000s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 4564 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 0 PES in FIFO
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 4564 (decoder) created at priority 2 (input/decoder.c:159)
speex debug: Speex 8000 Hz audio using narrowband mode (mono)
main debug: no aout present, spawning one
ogg debug: end of a group of logical streams
main debug: looking for audio output module: 3 candidates
aout_directx debug: OpenAudio
aout_directx debug: found device: Primary Sound Driver
aout_directx debug: found device: SoundMAX Digital Audio
aout_directx debug: device supports 2 channels
aout_directx debug: device supports 1 channel
aout_directx debug: creating DirectSoundThread
main debug: thread 5012 (DirectSound Notification Thread) created at priority 15 (directx.c:372)
aout_directx debug: DirectSoundThread ready
main debug: using audio output module "aout_directx"
main debug: output 's16l' 8000 Hz Stereo/Mono frame=1 samples/4 bytes
main debug: mixer 'fl32' 8000 Hz Stereo/Mono frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'s16l' 8000 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "float32tos16"
main debug: found a filter for the whole conversion
main debug: looking for audio mixer module: 3 candidates
main debug: using audio mixer module "float32_mixer"
main debug: input 's16l' 8000 Hz Mono frame=1 samples/2 bytes
main debug: filter(s) 's16l'->'fl32' 8000 Hz->8000 Hz Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "s16tofloat32"
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "trivial_channel_mixer"
main debug: found 2 filters for the whole conversion
main debug: filter(s) 'fl32'->'fl32' 8800 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "bandlimited_resampler"
main debug: found a filter for the whole conversion
main warning: PTS is out of range (4744988), dropping buffer
main debug: removing module "speex"
main debug: thread times: real 0m0.140627s, kernel 0m0.109375s, user 0m0.000000s
main debug: thread 4564 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 1 PES in FIFO
main debug: removing module "s16tofloat32"
main debug: removing module "trivial_channel_mixer"
main debug: removing module "bandlimited_resampler"
aout_directx debug: closing audio device
aout_directx debug: DirectSoundThread exiting
main debug: thread times: real 0m0.046875s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5012 joined (directx.c:598)
main debug: removing module "aout_directx"
main debug: removing module "float32tos16"
main debug: removing module "float32_mixer"
main debug: Program doesn't contain anymore ES
ogg warning: couldn't find any ogg logical stream
main debug: EOF reached
main debug: closing input
main debug: removing module "ogg"
main debug: removing module "access_file"
main debug: thread times: real 0m0.343756s, kernel 0m0.078125s, user 0m0.000000s
main debug: thread 4480 joined (input/input.c:412)
main: nothing to play
main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 4480 (input) created at priority 1 (input/input.c:265)
main debug: drive letter C: found in source
main debug: `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx' gives access `' demux `' path `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: C:\Documents and Settings\ankun\Desktop\speex_40_8k.cue
vcd debug: could not find .cue file
access_file debug: opening file `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx'
main debug: looking for demux2 module: 45 candidates
main debug: using demux2 module "ogg"
main debug: looking for a subtitle file in C:\Documents and Settings\ankun\Desktop\
main debug: `C:\Documents and Settings\ankun\Desktop\speex_40_8k.spx' successfully opened
ogg debug: found speex header, channels: 1, rate: 8000, bitrate: -1
main debug: selecting program id=0
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 5024 (decoder) created at priority 2 (input/decoder.c:159)
ogg debug: beginning of a group of logical streams
main debug: removing module "speex"
main debug: thread times: real 0m0.000000s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5024 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 0 PES in FIFO
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 5024 (decoder) created at priority 2 (input/decoder.c:159)
speex debug: Speex 8000 Hz audio using narrowband mode (mono)
main debug: looking for audio output module: 3 candidates
ogg debug: end of a group of logical streams
aout_directx debug: OpenAudio
aout_directx debug: found device: Primary Sound Driver
aout_directx debug: found device: SoundMAX Digital Audio
aout_directx debug: device supports 2 channels
aout_directx debug: device supports 1 channel
aout_directx debug: creating DirectSoundThread
main debug: thread 5060 (DirectSound Notification Thread) created at priority 15 (directx.c:372)
aout_directx debug: DirectSoundThread ready
main debug: using audio output module "aout_directx"
main debug: output 's16l' 8000 Hz Stereo/Mono frame=1 samples/4 bytes
main debug: mixer 'fl32' 8000 Hz Stereo/Mono frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'s16l' 8000 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "float32tos16"
main debug: found a filter for the whole conversion
main debug: looking for audio mixer module: 3 candidates
main debug: using audio mixer module "float32_mixer"
main debug: input 's16l' 8000 Hz Mono frame=1 samples/2 bytes
main debug: filter(s) 's16l'->'fl32' 8000 Hz->8000 Hz Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "s16tofloat32"
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "trivial_channel_mixer"
main debug: found 2 filters for the whole conversion
main debug: filter(s) 'fl32'->'fl32' 8800 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "bandlimited_resampler"
main debug: found a filter for the whole conversion
main warning: PTS is out of range (4666988), dropping buffer
main debug: removing module "speex"
main debug: thread times: real 0m0.046875s, kernel 0m0.015625s, user 0m0.015625s
main debug: thread 5024 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 1 PES in FIFO
main debug: removing module "s16tofloat32"
main debug: removing module "trivial_channel_mixer"
main debug: removing module "bandlimited_resampler"
aout_directx debug: closing audio device
aout_directx debug: DirectSoundThread exiting
main debug: thread times: real 0m0.015625s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5060 joined (directx.c:598)
main debug: removing module "aout_directx"
main debug: removing module "float32tos16"
main debug: removing module "float32_mixer"
main debug: Program doesn't contain anymore ES
ogg warning: couldn't find any ogg logical stream
main debug: EOF reached
main debug: closing input
main debug: removing module "ogg"
main debug: removing module "access_file"
main debug: thread times: real 0m0.203128s, kernel 0m0.015625s, user 0m0.000000s
main debug: thread 4480 joined (input/input.c:412)
main: nothing to play
main debug: adding playlist item `C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx' ( C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx )
main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 4468 (input) created at priority 1 (input/input.c:265)
main debug: drive letter C: found in source
main debug: `C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx' gives access `' demux `' path `C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx'
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path='C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx'
main debug: looking for access2 module: 5 candidates
vcd debug: trying .cue file: C:\Documents and Settings\ankun\Desktop\speex_05_8k.cue
vcd debug: could not find .cue file
access_file debug: opening file `C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: creating demux: access='' demux='' path='C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx'
main debug: looking for demux2 module: 45 candidates
main debug: using demux2 module "ogg"
main debug: looking for a subtitle file in C:\Documents and Settings\ankun\Desktop\
main debug: `C:\Documents and Settings\ankun\Desktop\speex_05_8k.spx' successfully opened
ogg debug: found speex header, channels: 1, rate: 8000, bitrate: -1
main debug: selecting program id=0
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 5040 (decoder) created at priority 2 (input/decoder.c:159)
ogg debug: beginning of a group of logical streams
main debug: removing module "speex"
main debug: thread times: real 0m0.000000s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5040 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 0 PES in FIFO
main debug: looking for decoder module: 28 candidates
main debug: using decoder module "speex"
main debug: thread 5040 (decoder) created at priority 2 (input/decoder.c:159)
speex debug: Speex 8000 Hz audio using narrowband mode (mono)
main debug: looking for audio output module: 3 candidates
ogg debug: end of a group of logical streams
aout_directx debug: OpenAudio
aout_directx debug: found device: Primary Sound Driver
aout_directx debug: found device: SoundMAX Digital Audio
aout_directx debug: device supports 2 channels
aout_directx debug: device supports 1 channel
aout_directx debug: creating DirectSoundThread
main debug: thread 4612 (DirectSound Notification Thread) created at priority 15 (directx.c:372)
aout_directx debug: DirectSoundThread ready
main debug: using audio output module "aout_directx"
main debug: output 's16l' 8000 Hz Stereo/Mono frame=1 samples/4 bytes
main debug: mixer 'fl32' 8000 Hz Stereo/Mono frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'s16l' 8000 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "float32tos16"
main debug: found a filter for the whole conversion
main debug: looking for audio mixer module: 3 candidates
main debug: using audio mixer module "float32_mixer"
main debug: input 's16l' 8000 Hz Mono frame=1 samples/2 bytes
main debug: filter(s) 's16l'->'fl32' 8000 Hz->8000 Hz Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "s16tofloat32"
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "trivial_channel_mixer"
main debug: found 2 filters for the whole conversion
main debug: filter(s) 'fl32'->'fl32' 8800 Hz->8000 Hz Stereo/Mono->Stereo/Mono
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "bandlimited_resampler"
main debug: found a filter for the whole conversion
main warning: PTS is out of range (4650988), dropping buffer
main debug: removing module "speex"
main debug: thread times: real 0m0.046875s, kernel 0m0.000000s, user 0m0.015625s
main debug: thread 5040 joined (input/decoder.c:191)
main debug: killing decoder fourcc `spx ', 1 PES in FIFO
main debug: removing module "s16tofloat32"
main debug: removing module "trivial_channel_mixer"
main debug: removing module "bandlimited_resampler"
aout_directx debug: closing audio device
aout_directx debug: DirectSoundThread exiting
main debug: thread times: real 0m0.015625s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 4612 joined (directx.c:598)
main debug: removing module "aout_directx"
main debug: removing module "float32tos16"
main debug: removing module "float32_mixer"
main debug: Program doesn't contain anymore ES
ogg warning: couldn't find any ogg logical stream
main debug: EOF reached
main debug: closing input
main debug: removing module "ogg"
main debug: removing module "access_file"
main debug: thread times: real 0m0.156253s, kernel 0m0.015625s, user 0m0.000000s
main debug: thread 4468 joined (input/input.c:412)
main: nothing to play
main debug: removing all interfaces
main debug: thread times: real 2m33.252942s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 3832 joined (interface/interface.c:258)
main debug: removing module "wxwidgets"
main debug: thread times: real 2m33.331068s, kernel 0m0.015625s, user 0m0.000000s
main debug: thread 3812 joined (interface/interface.c:258)
-- logger module stopped --