How to build VLC with Ogg/Vorbis support?
Posted: 15 May 2006 02:34
I'm cross-compiling VLC for the Roku HD1000. MP3 steams and files work fine, but I can't get ogg files or streams to work at all. Plugins are disabled, so it's just one huge executable.
I'm working with the official VLC 0.8.5 release, but had no luck with the svn snapshot either. I've tried the latest libogg/libvorbis releases, and also their current snapshots.
Questions:
- Should FFMPEG be built using libogg and libvorbis?
configure --enable-vorbis --enable-libogg ...
- Should FFMPEG's internal vorbis/ogg codec be disabled?
configure --disable-decoder=oggvorbis --disable-decoder=vorbis --disable-encoder=oggvorbis
- Should VLC be built to use libogg and libvorbis?
configure --enable-ogg --enable-vorbis
Can someone tell me what combination to use that normally works? (or better, how all these options play together). I've tried almost every variation, but no success.
Vlc for Windows can play the same files/streams just fine.
The following output occurs when ffmpeg has all its vorbis/ogg stuff disabled, and vlc has vorbis/ogg stuff enabled. I get the same fault whether it's an ogg file or stream:
I tried running this through GDB:
I know GDB isn't being much help - any hints on how to find where it's failing? I'm not quite a noob, just haven't used GDB for anything meaningful in a long time, so don't be afraid to get technical...
Here's VLC's configure statement:
-Simon
I'm working with the official VLC 0.8.5 release, but had no luck with the svn snapshot either. I've tried the latest libogg/libvorbis releases, and also their current snapshots.
Questions:
- Should FFMPEG be built using libogg and libvorbis?
configure --enable-vorbis --enable-libogg ...
- Should FFMPEG's internal vorbis/ogg codec be disabled?
configure --disable-decoder=oggvorbis --disable-decoder=vorbis --disable-encoder=oggvorbis
- Should VLC be built to use libogg and libvorbis?
configure --enable-ogg --enable-vorbis
Can someone tell me what combination to use that normally works? (or better, how all these options play together). I've tried almost every variation, but no success.
Vlc for Windows can play the same files/streams just fine.
The following output occurs when ffmpeg has all its vorbis/ogg stuff disabled, and vlc has vorbis/ogg stuff enabled. I get the same fault whether it's an ogg file or stream:
Code: Select all
# vlc -vv "http://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u"
(...Roku Cascade API initialization messages omitted for clarity...)
VLC media player 0.8.5 Janus
[00000001] main vlc debug: opening config file /root/.vlc/vlcrc
[00000001] main vlc warning: config file /root/.vlc/vlcrc does not exist yet
[00000001] main vlc debug: checking builtin modules
[00000001] main vlc debug: module bank initialized, found 172 modules
[00000001] main vlc debug: opening config file /root/.vlc/vlcrc
[00000001] main vlc warning: config file /root/.vlc/vlcrc does not exist yet
[00000001] main vlc debug: CPU has capabilities
[00000001] main vlc debug: looking for memcpy module: 1 candidate
[00000001] main vlc debug: using memcpy module "memcpy"
[00000224] main playlist debug: waiting for thread completion
[00000224] main playlist debug: thread 3076 (playlist) created at priority 0 (playlist/playlist.c:183)
[00000225] main private debug: waiting for thread completion
[00000225] main private debug: thread 4101 (preparser) created at priority 0 (playlist/playlist.c:209)
[00000226] main interface debug: looking for interface module: 1 candidate
[00000226] main interface debug: using interface module "hotkeys"
[00000226] main interface debug: thread 5126 (interface) created at priority 0 (interface/interface.c:230)
[00000224] main playlist debug: adding playlist item `http://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u' ( http
://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u )
[00000227] main interface debug: looking for interface module: 2 candidates
Remote control interface initialized. Type `help' for help.
[00000227] main interface debug: using interface module "rc"
[00000227] main interface debug: thread 6151 (manager) created at priority 0 (interface/interface.c:215)
[00000224] main playlist debug: creating new input thread
status change: ( new input: http://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u )
status change: ( audio volume: 256 )
[00000228] main input debug: waiting for thread completion
[00000228] main input debug: thread 7176 (input) created at priority 0 (input/input.c:260)
status change: ( play state: 1 )
[00000228] main input debug: creating statistics handler
[00000228] main input debug: `http://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u' gives access `http' demux `' p
ath `dir.xiph.org/listen.php?pid=3539406&file=listen.m3u'
[00000228] main input debug: creating demux: access='http' demux='' path='dir.xiph.org/listen.php?pid=3539406&file=liste
n.m3u'
[00000230] main demuxer debug: looking for access_demux module: 0 candidates
[00000230] main demuxer warning: no access_demux module matched "http"
[00000228] main input debug: creating access 'http' path='dir.xiph.org/listen.php?pid=3539406&file=listen.m3u'
[00000231] main access debug: looking for access2 module: 4 candidates
[00000231] access_http access debug: http: server='dir.xiph.org' port=80 file='/listen.php?pid=3539406&file=listen.m3u
[00000231] main access debug: net: connecting to dir.xiph.org port 80
[00000231] main access debug: connection in progress
[00000231] access_http access debug: protocol 'HTTP' answer code 206
[00000231] access_http access debug: Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.1.4 mod_python/3.1.3 Python/2.
3.5 PHP/4.3.10-16
[00000231] access_http access debug: stream size=40
[00000231] access_http access debug: Content-Type: audio/x-mpegurl
[00000231] main access debug: using access2 module "access_http"
[00000232] main private debug: pre-buffering...
[00000232] main private debug: received first data for our buffer
[00000228] main input debug: creating demux: access='http' demux='' path='dir.xiph.org/listen.php?pid=3539406&file=liste
n.m3u'
[00000233] main demuxer debug: looking for demux2 module: 39 candidates
[00000233] playlist demuxer debug: found valid M3U playlist file
[00000233] main demuxer debug: using demux2 module "playlist"
[00000228] main input debug: `http://dir.xiph.org/listen.php?pid=3539406&file=listen.m3u' successfully opened
[00000224] playlist playlist debug: starting playlist playback
[00000224] main playlist debug: adding playlist item `http://www.soundportal.at:8000/new.ogg' ( http://www.soundportal.a
t:8000/new.ogg )
[00000228] main input debug: EOF reached
[00000228] main input debug: closing input
[00000233] main demuxer debug: removing module "playlist"
[00000231] main access debug: removing module "access_http"
[00000228] main input debug: thread 7176 joined (input/input.c:399)
status change: ( stop state: 0 )
[00000224] main playlist debug: creating new input thread
status change: ( new input: http://www.soundportal.at:8000/new.ogg )
status change: ( audio volume: 256 )
[00000234] main input debug: waiting for thread completion
[00000234] main input debug: thread 8200 (input) created at priority 0 (input/input.c:260)
status change: ( play state: 1 )
[00000234] main input debug: `http://www.soundportal.at:8000/new.ogg' gives access `http' demux `' path `www.soundportal
.at:8000/new.ogg'
[00000234] main input debug: creating demux: access='http' demux='' path='www.soundportal.at:8000/new.ogg'
[00000235] main demuxer debug: looking for access_demux module: 0 candidates
[00000235] main demuxer warning: no access_demux module matched "http"
[00000234] main input debug: creating access 'http' path='www.soundportal.at:8000/new.ogg'
[00000236] main access debug: looking for access2 module: 4 candidates
[00000236] access_http access debug: http: server='www.soundportal.at' port=8000 file='/new.ogg
[00000236] main access debug: net: connecting to www.soundportal.at port 8000
[00000236] main access debug: connection in progress
[00000236] access_http access debug: protocol 'HTTP' answer code 200
[00000236] access_http access debug: Content-Type: application/ogg
[00000236] access_http access debug: Meta-Info: icy-br: 256
[00000236] access_http access debug: Meta-Info: icy-description: Soundportal Netradio
[00000236] access_http access debug: Icy-Genre: Rock/Alternative
[00000236] access_http access debug: Icy-Name: Soundportal
[00000236] access_http access debug: Meta-Info: icy-pub: 1
[00000236] access_http access debug: Meta-Info: icy-url: http://www.soundportal.at
[00000236] access_http access debug: Server: Icecast 2.2.0
[00000236] access_http access debug: auto re-connect enabled
[00000236] main access debug: using access2 module "access_http"
[00000237] main private debug: pre-buffering...
[00000237] main private debug: received first data for our buffer
[00000237] main private debug: pre-buffering done 5792 bytes in 0s - 11 kbytes/s
[00000234] main input debug: creating demux: access='http' demux='' path='www.soundportal.at:8000/new.ogg'
[00000238] main demuxer debug: looking for demux2 module: 39 candidates
[00000238] main demuxer debug: using demux2 module "ogg"
[00000234] main input debug: meta information:
[00000234] main input debug: - 'Title' = 'Soundportal'
[00000234] main input debug: - 'Genre' = 'Rock/Alternative'
[00000234] main input debug: `http://www.soundportal.at:8000/new.ogg' successfully opened
[00000238] ogg demuxer debug: found vorbis header
[00000234] main input debug: selecting program id=0
[00000239] main decoder debug: looking for decoder module: 19 candidates
[00000239] main decoder debug: using decoder module "vorbis"
[00000239] main decoder debug: thread 9225 (decoder) created at priority 0 (input/decoder.c:158)
[00000238] ogg demuxer debug: beginning of a group of logical streams
[00000239] main decoder debug: removing module "vorbis"
[00000239] main decoder debug: thread 9225 joined (input/decoder.c:191)
[00000239] main decoder debug: killing decoder fourcc `vorb', 0 PES in FIFO
[00000240] main decoder debug: looking for decoder module: 19 candidates
[00000240] main decoder debug: using decoder module "vorbis"
[00000240] main decoder debug: thread 10249 (decoder) created at priority 0 (input/decoder.c:158)
[00000240] vorbis decoder debug: headers already available as extra data
[00000240] vorbis decoder debug: channels:2 samplerate:48000 bitrate:256000
Segmentation fault
Code: Select all
# gdb ./vlc
GNU gdb 2003-07-16-cvs
Copyright 2003 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 "mipsel-unknown-linux-gnu"...
(gdb) run -vvv "http://dir.xiph.org/listen.php?pid=3565554&file=listen.m3u"
Starting program: /mnt/flash1/vlc/bin/vlc -vvv "http://dir.xiph.org/listen.php?pid=3565554&file=listen.m3u"
(...Roku Cascade API initialization messages omitted for clarity...)
Program received signal SIG32, Real-time event 32.
0x2b240f84 in sigset () from /lib/libc.so.6
(gdb) bt
#0 0x2b240f84 in sigset () from /lib/libc.so.6
Cannot access memory at address 0x1c0
(gdb) info frame
Stack level 0, frame at 0x1c8:
= 0x2b240f84 in sigset; saved 0x0
Arglist at 0x1c8, args:
Locals at 0x1c8, Previous frame's sp is 0x1c8
Saved registers:
at 0x1c, at 0x1b8, at 0x10, at 0x1c0, at 0x1c0, a1 at 0x1c, s0 at 0x1b8,
gp at 0x10, sp at 0x1c8, ra at 0x1c0, pc at 0x1c0
(gdb)
Here's VLC's configure statement:
Code: Select all
./configure \
--host=mipsel \
--enable-debug \
--enable-trace \
--enable-optimize-memory \
--disable-debug \
--disable-trace \
--disable-plugins \
--prefix=/mnt/flash1/vlc \
--disable-hal \
--disable-sdl \
--enable-mad \
--enable-libmpeg2 --with-libmpeg2-tree=/ROKU/src/mpeg2dec-0.4.0 \
--enable-dvbpsi \
--disable-vcd --disable-vcdx --disable-cdda --disable-cddax --disable-libcdio --disable-libcddb \
--disable-dvd --disable-dvdread --disable-dvdnav --disable-dvdplay \
--disable-dshow --disable-directx --disable-wingdi --disable-waveout \
--disable-macosx --disable-coreaudio --disable-quicktime \
--disable-bonjour \
--disable-daap \
--disable-wxwidgets \
--disable-opengl \
--enable-png \
--disable-mpc \
--disable-smb \
--disable-gnutls \
--disable-vlm \
--disable-qnx \
--enable-ncurses \
--disable-corba \
--disable-mozilla \
--disable-mga \
--disable-svgalib --disable-ggi --disable-glide \
--disable-aa --disable-caca \
--disable-qte --disable-qt_video \
--enable-livedotcom --with-livedotcom-tree=/ROKU/src/live \
--disable-corba \
--disable-v4l \
--disable-pvr \
--disable-satellite --disable-dvb \
--disable-slp \
--disable-speex \
--disable-tarkin \
--disable-theora \
--disable-mod \
--disable-mkv \
--enable-a52 \
--with-a52=/ROKU/src/a52dec-0.7.4 \
--with-a52-tree=/ROKU/src/a52dec-0.7.4 \
--disable-dts \
--enable-faad --with-faad-tree=/ROKU/src/faad2-20040923 \
--enable-flac \
--enable-ffmpeg \
--with-ffmpeg-mp3lame \
--with-ffmpeg-faac \
--with-ffmpeg-zlib \
--with-ffmpeg-tree=/ROKU/src/ffmpeg-cvs/ \
--enable-ogg --enable-vorbis \
--disable-tremor \
--disable-lirc --disable-joystick \
--disable-x11 --disable-xvideo --disable-xosd --disable-glx \
--disable-gtk --disable-gnome --disable-esd \
--disable-gnomevfs \
--disable-wxwidgets \
--disable-kde --disable-arts \
--disable-pda --disable-opie \
--disable-cmml \
--disable-skins --disable-skins2 \
--disable-fribidi --disable-freetype \
--enable-sout \
--disable-oss --disable-alsa --disable-fb \
--disable-visual --disable-goom \
--disable-screen \
--enable-libxml2 \
--disable-x264 \
--enable-httpd \
--enable-nls \
--with-included-gettext \
--enable-hd1000a --disable-hd1000v
-Simon