Your Digital Media Has Never Looked So Good

 
simongales
Topic Author
Posts: 7
Joined: Tue Apr 04, 2006 12:59 pm

Trying to build VLC 0.8.4 for the Roku HD1000

Sun Apr 30, 2006 10:37 am

I'm trying to cross-compile VLC 0.8.4 (on a Fedora Core 4 system) for the Roku HD1000.

I'm so tantalizingly close, it's driving me nuts. :? At this point, I'm only trying to play MP3's (streaming, video, etc, will come later).

Everything appears to be working, but it's being sent to the "dummy" audio_output module, because the hd1000a module fails to load (see full trace log at the end of my post).

[00000001] main vlc warning: cannot load module `/mnt/flash1/vlc/lib/vlc/audio_output/libhd1000a_plugin.so' (/mnt/flash1
/vlc/lib/vlc/audio_output/libhd1000a_plugin.so: undefined symbol: __14PCMAudioPlayer)


The libhd1000a_plugin.so module is looking for __14PCMAudioPlayer which is defined in /usr/local/lib/libHDMachineX225.so (which configure found and was happy about).

Any clues? hints? pointers? I'm stuck. FYI, building vlc with everything builtin was useless - just hung, no log output, etc.

If you want more details, feel free to ask...

Thanks,
Simon (sgales AT simonandchristy.com)

# ./vlc --reset-plugins-cache --reset-config --extraintf logger -vvv ../../brick1.mp3
VLC media player 0.8.4a Janus
[00000001] main vlc debug: checking builtin modules
[00000001] main vlc debug: checking plugin modules
[00000001] main vlc debug: removing plugins cache file /root/.vlc/cache/plugins-04041e.dat
[00000001] main vlc debug: recursively browsing `modules'
[00000001] main vlc debug: recursively browsing `/mnt/flash1/vlc/lib/vlc'
[00000001] main vlc warning: cannot load module `/mnt/flash1/vlc/lib/vlc/audio_output/libhd1000a_plugin.so' (/mnt/flash1
/vlc/lib/vlc/audio_output/libhd1000a_plugin.so: undefined symbol: __14PCMAudioPlayer)

[00000001] main vlc debug: recursively browsing `plugins'
[00000001] main vlc debug: module bank initialized, found 135 modules
[00000001] main vlc debug: opening config file /root/.vlc/vlcrc
[00000001] main vlc debug: opening config file /root/.vlc/vlcrc
[00000001] main vlc debug: CPU has capabilities
[00000001] main vlc debug: looking for memcpy module: 1 candidate
[00000133] main module debug: using memcpy module "memcpy"
[00000174] main playlist debug: waiting for thread completion
[00000174] main playlist debug: thread 1026 (playlist) created at priority 0 (src/playlist/playlist.c:182)
[00000175] main private debug: waiting for thread completion
[00000175] main private debug: thread 2051 (preparser) created at priority 0 (src/playlist/playlist.c:204)
[00000176] main interface debug: looking for interface module: 1 candidate
[00000176] logger interface: Using the logger interface module...
[00000176] logger interface warning: no log filename provided, using `vlc-log.txt'
[00000176] logger interface debug: opening logfile `vlc-log.txt'
[00000141] main module debug: using interface module "logger"
[00000176] main interface debug: interface initialized
[00000176] main interface debug: thread 3076 (interface) created at priority 0 (src/interface/interface.c:210)
[00000177] main interface debug: looking for interface module: 1 candidate
[00000086] main module debug: using interface module "hotkeys"
[00000177] main interface debug: interface initialized
[00000177] main interface debug: thread 4101 (interface) created at priority 0 (src/interface/interface.c:210)
[00000174] main playlist debug: adding playlist item `../../brick1.mp3' ( ../../brick1.mp3 )
[00000178] main interface debug: looking for interface module: 2 candidates
Remote control interface initialized, `h' for help
[00000087] main module debug: using interface module "rc"
[00000178] main interface debug: interface initialized
[00000174] main playlist debug: creating new input thread
[00000178] main interface debug: thread 5126 (manager) created at priority 0 (src/interface/interface.c:195)
[00000179] main input debug: waiting for thread completion
[00000179] main input debug: thread 6151 (input) created at priority 0 (src/input/input.c:229)
status change: ( New input: ../../brick1.mp3 )
status change: ( audio volume: 256 )
status change: ( play state: 1 )
[00000179] main input debug: `../../brick1.mp3' gives access `' demux `' path `../../brick1.mp3'
[00000179] main input debug: creating demux: access='' demux='' path='../../brick1.mp3'
[00000180] main demuxer debug: looking for access_demux module: 0 candidates
[00000180] main demuxer warning: no access_demux module matched "any"
[00000179] main input debug: creating access '' path='../../brick1.mp3'
[00000181] main access debug: looking for access2 module: 2 candidates
[00000181] access_file access debug: opening file `../../brick1.mp3'
[00000017] main module debug: using access2 module "access_file"
[00000182] main private debug: pre buffering
[00000182] main private debug: received first data for our buffer
[00000182] main private debug: prebuffering done 622573 bytes in 0s - 4676 kbytes/s
[00000179] main input debug: creating demux: access='' demux='' path='../../brick1.mp3'
[00000183] main demuxer debug: looking for demux2 module: 34 candidates
[00000184] main packetizer debug: looking for packetizer module: 13 candidates
[00000070] main module debug: using packetizer module "mpeg_audio"
[00000184] mpeg_audio packetizer debug: MPGA channels:2 samplerate:44100 bitrate:128
[00000179] main input debug: selecting program id=0
[00000183] main demuxer debug: looking for id3 module: 0 candidates
[00000183] main demuxer error: no id3 module matched "any"
[00000093] main module debug: using demux2 module "mpga"
[00000179] main input debug: looking for a subtitle file in ../../
[00000185] main decoder debug: looking for decoder module: 16 candidates
[00000069] main module debug: using decoder module "mpeg_audio"
[00000185] main decoder debug: thread 7176 (decoder) created at priority 0 (src/input/decoder.c:158)
[00000179] main input debug: `../../brick1.mp3' successfully opened
[00000185] mpeg_audio decoder debug: MPGA channels:2 samplerate:44100 bitrate:128
[00000185] main decoder debug: no aout present, spawning one
[00000186] main audio output debug: looking for audio output module: 1 candidate
[00000130] main module debug: using audio output module "dummy"
[00000186] main audio output debug: output 'mpga' 44100 Hz Stereo frame=1152 samples/1053 bytes
[00000186] main audio output debug: mixer 'mpga' 44100 Hz Stereo frame=1152 samples/1053 bytes
[00000186] main audio output debug: filter(s) 'fi32'->'mpga' 44100 Hz->44100 Hz Stereo->Stereo
[00000187] main private debug: looking for audio filter module: 23 candidates
[00000186] main audio output error: couldn't find a filter for the conversion
[00000186] main audio output error: couldn't set an output pipeline
[00000130] main module debug: unlocking module "dummy"
quit
quit: returned 0 (no error)
status change: ( stop state: 0 )
status change: ( quit )
[00000001] main vlc debug: removing all interfaces
[00000178] main interface debug: thread 5126 joined (src/interface/interface.c:238)
[00000087] main module debug: unlocking module "rc"
[00000179] main input debug: control type=0
[00000179] main input debug: control: stopping input
[00000179] main input debug: closing input
[00000070] main module debug: unlocking module "mpeg_audio"
[00000093] main module debug: unlocking module "mpga"
[00000017] main module debug: unlocking module "access_file"
[00000069] main module debug: unlocking module "mpeg_audio"
[00000185] main decoder debug: thread 7176 joined (src/input/decoder.c:191)
[00000185] main decoder debug: killing decoder fourcc `mpga', 0 PES in FIFO
[00000177] main interface debug: thread 4101 joined (src/interface/interface.c:238)
[00000086] main module debug: unlocking module "hotkeys"
[00000179] main input debug: thread 6151 joined (src/input/input.c:386)
[00000176] main interface debug: thread 3076 joined (src/interface/interface.c:238)
[00000141] main module debug: unlocking module "logger"
[00000001] main vlc debug: removing all playlists
[00000175] main private debug: thread 2051 joined (src/playlist/playlist.c:237)
[00000174] main playlist debug: thread 1026 joined (src/playlist/playlist.c:238)
[00000174] main playlist: stopping playback
[00000174] main playlist debug: deleting playlist item `../../brick1.mp3'
[00000001] main vlc debug: removing all video outputs
[00000001] main vlc debug: removing all audio outputs
[00000001] main vlc debug: removing announce handler
[00000133] main module debug: unlocking module "memcpy"
[00000001] main vlc debug: saving plugins cache file /root/.vlc/cache/plugins-04041e.dat




Configure script:

CFLAGS="-I/usr/tools/roku/include -I/mnt/flash1/vlc/include -I/ROKU/usr/include -I/ROKU/usr/local/include -I/ROKU/usr/local/include/roku -I/ROKU/usr/share/rokudev/usr/include" \
CXXFLAGS="${CFLAGS}" \
CPPFLAGS="${CFLAGS}" \
LDFLAGS="-L/usr/tools/roku/mipsel-linux/lib -L/mnt/flash1/vlc/lib -L/usr/local/lib -L/ROKU/usr/share/rokudev/usr/lib -L/ROKU/lib -Wl,-rpath-link -Wl,/ROKU/lib -Wl,-rpath-link -Wl,/ROKU/usr/local/lib" \
CC=mipsel-linux-gcc CXX=mipsel-linux-g++ AR=mipsel-linux-ar LD=mipsel-linux-ld RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip \
./configure --host=mipsel --enable-trace --enable-debug \
--prefix=/mnt/flash1/vlc \
--disable-optimizations \
--disable-hal \
--disable-sdl \
--enable-mad --with-mad-tree=${SRC}/libmad-0.15.1b \
--enable-libmpeg2 --with-libmpeg2-tree=${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 \
--disable-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 \
--disable-livedotcom \
--disable-corba \
--disable-v4l \
--disable-pvr \
--disable-satellite --disable-dvb \
--disable-slp \
--disable-speex \
--enable-ffmpeg \
--with-ffmpeg-mp3lame \
--with-ffmpeg-zlib \
--with-ffmpeg-tree=${SRC}/ffmpeg-20051126/ \
--disable-ogg --disable-vorbis --disable-tremor --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 \
--disable-faad \
--disable-flac \
--disable-lirc --disable-joystick \
--disable-x11 --disable-xvideo --disable-xosd --disable-glx \
--disable-gtk --disable-gnome --disable-esd \
--disable-gnomevfs \
--disable-wxwindows \
--disable-kde --disable-arts \
--disable-pda --disable-opie \
--disable-cmml \
--disable-skins --disable-skins2 \
--disable-fribidi --disable-freetype \
--disable-sout \
--disable-oss --disable-alsa --disable-fb \
--disable-visual --disable-goom \
--disable-screen \
--enable-libxml2 \
--disable-x264 \
--disable--httpd \
--disable-nls \
--with-included-gettext \
--enable-hd1000a --disable-hd1000v
 
simongales
Topic Author
Posts: 7
Joined: Tue Apr 04, 2006 12:59 pm

Trying to build VLC 0.8.4 for the Roku HD1000

Wed May 03, 2006 4:32 pm

Got it working, through a small hack and another small fix.

1) Small-fix - My cross-compile kit (per http://home.planet.nl/~jpsaman/linux/roku-hacking-howto.html) was a mess. The symbolic links in /usr/tools/roku/mipsel-linux/lib were bad:
drwxr-xr-x  4 root root     4096 May  3 15:50 .
drwxr-xr-x  6 root root     4096 May  3 15:31 ..
-rw-r--r--  1 root root    11773 May 26  2004 crt1.o
-rw-r--r--  1 root root     2152 May 26  2004 crti.o
-rw-r--r--  1 root root     1536 May 26  2004 crtn.o
-rw-r--r--  1 root root    31774 May 26  2004 gcrt1.o
-rwxr-xr-x  1 root root   112688 May 26  2004 ld-2.2.4.so
drwxr-xr-x  2 root root     4096 Apr  7 15:57 ldscripts
lrwxrwxrwx  1 root root       11 Apr  7 15:57 ld.so.1 -> ld-2.2.4.so
-rwxr-xr-x  1 root root    11812 May 26  2004 libanl-2.2.4.so
-rw-r--r--  1 root root   201574 May 26  2004 libanl.a
lrwxrwxrwx  1 root root       12 Apr  7 15:57 libanl.so -> libanl.so.1'
lrwxrwxrwx  1 root root       15 Apr  7 15:57 libanl.so.1 -> libanl-2.2.4.so
-rwxr-xr-x  1 root root     4540 May 26  2004 libBrokenLocale-2.2.4.so
-rw-r--r--  1 root root    28106 May 26  2004 libBrokenLocale.a
lrwxrwxrwx  1 root root       21 Apr  7 15:57 libBrokenLocale.so -> libBrokenLocale.so.1'
lrwxrwxrwx  1 root root       24 Apr  7 15:57 libBrokenLocale.so.1 -> libBrokenLocale-2.2.4.so
lrwxrwxrwx  1 root root       15 Apr  7 15:57 libbsd.a -> libbsd-compat.a
-rw-r--r--  1 root root     3530 May 26  2004 libbsd-compat.a
-rwxr-xr-x  1 root root  1526452 May 26  2004 libc-2.2.4.so
-rw-r--r--  1 root root 16777215 May 26  2004 libc.a
-rw-r--r--  1 root root    82768 May 26  2004 libc_nonshared.a
-rwxr-xr-x  1 root root    25980 May 26  2004 libcrypt-2.2.4.so
-rw-r--r--  1 root root   130786 May 26  2004 libcrypt.a
lrwxrwxrwx  1 root root       14 Apr  7 15:57 libcrypt.so -> libcrypt.so.1'
lrwxrwxrwx  1 root root       17 Apr  7 15:57 libcrypt.so.1 -> libcrypt-2.2.4.so
-rw-r--r--  1 root root      271 Apr  7 15:36 libc.so
lrwxrwxrwx  1 root root       13 Apr  7 15:57 libc.so.6 -> libc-2.2.4.so
-rw-r--r--  1 root root    18009 May 26  2004 libc_stubs.a
-rwxr-xr-x  1 root root    11944 May 26  2004 libdl-2.2.4.so
-rw-r--r--  1 root root    53276 May 26  2004 libdl.a
lrwxrwxrwx  1 root root       11 Apr  7 15:57 libdl.so -> libdl.so.2'
lrwxrwxrwx  1 root root       14 Apr  7 15:57 libdl.so.2 -> libdl-2.2.4.so
-rw-r--r--  1 root root     3530 May 26  2004 libg.a
-rw-r--r--  1 root root  1084962 Apr  7 15:47 libiberty.a
-rw-r--r--  1 root root     3816 May 26  2004 libieee.a
-rwxr-xr-x  1 root root  1029404 May 26  2004 libm-2.2.4.so
-rw-r--r--  1 root root  3918430 May 26  2004 libm.a
-rw-r--r--  1 root root     4340 May 26  2004 libmcheck.a
lrwxrwxrwx  1 root root       10 Apr  7 15:57 libm.so -> libm.so.6'
lrwxrwxrwx  1 root root       13 Apr  7 15:57 libm.so.6 -> libm-2.2.4.so
-rwxr-xr-x  1 root root   100560 May 26  2004 libnsl-2.2.4.so
-rw-r--r--  1 root root  2078056 May 26  2004 libnsl.a
lrwxrwxrwx  1 root root       12 Apr  7 15:57 libnsl.so -> libnsl.so.1'
lrwxrwxrwx  1 root root       15 Apr  7 15:57 libnsl.so.1 -> libnsl-2.2.4.so
-rwxr-xr-x  1 root root    63580 May 26  2004 libnss_compat-2.2.4.so
lrwxrwxrwx  1 root root       19 Apr  7 15:57 libnss_compat.so -> libnss_compat.so.2'
lrwxrwxrwx  1 root root       22 Apr  7 15:57 libnss_compat.so.2 -> libnss_compat-2.2.4.so
-rwxr-xr-x  1 root root    15000 May 26  2004 libnss_dns-2.2.4.so
lrwxrwxrwx  1 root root       16 Apr  7 15:57 libnss_dns.so -> libnss_dns.so.2'
lrwxrwxrwx  1 root root       19 Apr  7 15:57 libnss_dns.so.2 -> libnss_dns-2.2.4.so
-rwxr-xr-x  1 root root    64248 May 26  2004 libnss_files-2.2.4.so
lrwxrwxrwx  1 root root       18 Apr  7 15:57 libnss_files.so -> libnss_files.so.2'
lrwxrwxrwx  1 root root       21 Apr  7 15:57 libnss_files.so.2 -> libnss_files-2.2.4.so
-rwxr-xr-x  1 root root    20560 May 26  2004 libnss_hesiod-2.2.4.so
lrwxrwxrwx  1 root root       19 Apr  7 15:57 libnss_hesiod.so -> libnss_hesiod.so.2'
lrwxrwxrwx  1 root root       22 Apr  7 15:57 libnss_hesiod.so.2 -> libnss_hesiod-2.2.4.so
-rwxr-xr-x  1 root root    54768 May 26  2004 libnss_nis-2.2.4.so
-rwxr-xr-x  1 root root    59144 May 26  2004 libnss_nisplus-2.2.4.so
lrwxrwxrwx  1 root root       20 Apr  7 15:57 libnss_nisplus.so -> libnss_nisplus.so.2'
lrwxrwxrwx  1 root root       23 Apr  7 15:57 libnss_nisplus.so.2 -> libnss_nisplus-2.2.4.so
lrwxrwxrwx  1 root root       16 Apr  7 15:57 libnss_nis.so -> libnss_nis.so.2'
lrwxrwxrwx  1 root root       19 Apr  7 15:57 libnss_nis.so.2 -> libnss_nis-2.2.4.so
-rwxr-xr-x  1 root root   108932 May 26  2004 libpthread-0.9.so
-rw-r--r--  1 root root  1749438 May 26  2004 libpthread.a
lrwxrwxrwx  1 root root       16 Apr  7 15:57 libpthread.so -> libpthread.so.2'
lrwxrwxrwx  1 root root       17 Apr  7 15:57 libpthread.so.0 -> libpthread-0.9.so
lrwxrwxrwx  1 root root       17 Apr  7 15:57 libpthread.so.2 -> libpthread-0.9.so
-rwxr-xr-x  1 root root    76348 May 26  2004 libresolv-2.2.4.so
-rw-r--r--  1 root root   775814 May 26  2004 libresolv.a
lrwxrwxrwx  1 root root       15 Apr  7 15:57 libresolv.so -> libresolv.so.2'
lrwxrwxrwx  1 root root       18 Apr  7 15:57 libresolv.so.2 -> libresolv-2.2.4.so
-rw-r--r--  1 root root   641910 May 26  2004 librpcsvc.a
-rw-r--r--  1 root root   671246 May 26  2004 librt.a
-rw-r--r--  1 root root      178 Apr  7 15:36 librt.so
-rwxr-xr-x  1 root root     9520 May 26  2004 libSegFault.so
-rw-r--r--  1 root root  2607928 Apr  7 15:47 libstdc++-3-libc6.2-2-2.10.0.a
-r-xr-xr-x  1 root root  1521031 Apr  7 15:47 libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx  1 root root       30 Apr  7 15:57 libstdc++-libc6.2-2.a.3 -> libstdc++-3-libc6.2-2-2.10.0.a
lrwxrwxrwx  1 root root       31 Apr  7 15:57 libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
-rwxr-xr-x  1 root root    17208 May 26  2004 libthread_db-1.0.so
lrwxrwxrwx  1 root root       18 Apr  7 15:57 libthread_db.so -> libthread_db.so.1'
lrwxrwxrwx  1 root root       19 Apr  7 15:57 libthread_db.so.1 -> libthread_db-1.0.so
-rwxr-xr-x  1 root root     9312 May 26  2004 libutil-2.2.4.so
-rw-r--r--  1 root root   140456 May 26  2004 libutil.a
lrwxrwxrwx  1 root root       13 Apr  7 15:57 libutil.so -> libutil.so.1'
lrwxrwxrwx  1 root root       16 Apr  7 15:57 libutil.so.1 -> libutil-2.2.4.so
-rw-r--r--  1 root root     2884 May 26  2004 Mcrt1.o


Note that the targets of some of the symbolic links have a quote at the end, making them invalid. Long story short, this made the compiler (linker) use the static libraries, which is a "bad thing" for libpthread. Not sure how this happened, and would be interested to hear if others see this. I fixed this with:
rm -f  libanl.so
rm -f  libBrokenLocale.so
rm -f  libcrypt.so
rm -f  libdl.so
rm -f  libm.so
rm -f  libnsl.so
rm -f  libnss_compat.so
rm -f  libnss_dns.so
rm -f  libnss_files.so
rm -f  libnss_hesiod.so
rm -f  libnss_nisplus.so
rm -f  libnss_nis.so
rm -f  libpthread.so
rm -f  libresolv.so
rm -f  libthread_db.so
rm -f  libutil.so
ln -s  libanl.so.1 libanl.so
ln -s  libBrokenLocale.so.1 libBrokenLocale.so
ln -s  libcrypt.so.1 libcrypt.so
ln -s  libdl.so.2 libdl.so
ln -s  libm.so.6 libm.so
ln -s  libnsl.so.1 libnsl.so
ln -s  libnss_compat.so.2 libnss_compat.so
ln -s  libnss_dns.so.2 libnss_dns.so
ln -s  libnss_files.so.2 libnss_files.so
ln -s  libnss_hesiod.so.2 libnss_hesiod.so
ln -s  libnss_nisplus.so.2 libnss_nisplus.so
ln -s  libnss_nis.so.2 libnss_nis.so
ln -s  libpthread.so.2 libpthread.so
ln -s  libresolv.so.2 libresolv.so
ln -s  libthread_db.so.1 libthread_db.so
ln -s  libutil.so.1 libutil.so


2) Small-hack (fixes the original problem): The hd1000a.cpp module/plugin wasn't being linked with everything it needed. I added the following to vlc-config at line 90:
   hd1000a)
      ldflags="${ldflags} -lm -ldvbpsi -lHDMachineX225 -lCascade -lacl -lCascadeCore -lati2DM -latiutils -lfreetype -lcore -l2dcore -lbcl"
    ;;


I'm not sure all of these libraries were really needed, but it works. :wink: Unfortunately, running configure again wipes this out, though I modified vlc.config.in. Haven't had time to figure out how to fix this properly...

I'm now able to play MP3's and Shoutcast streams, via the Roku. Similar to what dtaubert's vlc (in HexRadio) can do. For the adventurous among you, here's my configuration:

CFLAGS="-I/usr/tools/roku/mipsel-linux/include -I/ROKU/usr/share/rokudev/usr/include -I/mnt/flash1/vlc/include -I/ROKU/usr/include -I/ROKU/usr/local/include -I/ROKU/usr/local/include/roku -I/usr/tools/roku/include" \
LDFLAGS="-L/usr/tools/roku/mipsel-linux/lib -L/ROKU/lib -L/ROKU/usr/local/lib -L/ROKU/usr/share/rokudev/usr/lib -L/mnt/flash1/vlc/lib -L/usr/tools/roku/lib" \
CC=mipsel-linux-gcc CXX=mipsel-linux-g++ AR=mipsel-linux-ar LD=mipsel-linux-ld RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip \
 ./configure \
  --host=mipsel \
  --enable-release \
  --disable-debug \
  --disable-trace \
  --enable-mostly-builtin \
  --prefix=/mnt/flash1/vlc \
  --disable-hal \
  --disable-sdl \
  --enable-mad --with-mad-tree=${SRC}/libmad-0.15.1b \
  --enable-libmpeg2 --with-libmpeg2-tree=${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 \
  --disable-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 \
  --disable-livedotcom \
  --disable-corba \
  --disable-v4l \
  --disable-pvr \
  --disable-satellite --disable-dvb \
  --disable-slp \
  --disable-speex \
  --enable-ffmpeg \
    --with-ffmpeg-mp3lame \
    --with-ffmpeg-zlib \
    --with-ffmpeg-tree=${SRC}/ffmpeg-20051126/ \
  --disable-ogg --disable-vorbis --disable-tremor --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 \
  --disable-faad \
  --disable-flac \
  --disable-lirc --disable-joystick \
  --disable-x11 --disable-xvideo --disable-xosd --disable-glx \
  --disable-gtk --disable-gnome --disable-esd \
  --disable-gnomevfs \
  --disable-wxwindows \
  --disable-kde --disable-arts \
  --disable-pda --disable-opie \
  --disable-cmml \
  --disable-skins --disable-skins2 \
  --disable-fribidi --disable-freetype \
  --disable-sout \
  --disable-oss --disable-alsa --disable-fb \
  --disable-visual --disable-goom \
  --disable-screen \
  --enable-libxml2 \
  --disable-x264 \
  --disable--httpd \
  --disable-nls \
  --with-included-gettext \
  --enable-hd1000a --disable-hd1000v



Wish me luck!
 
pxegeek
Posts: 94
Joined: Mon Jan 24, 2005 9:23 pm

Wed May 03, 2006 8:55 pm

Good luck! Keep us posted on your progress.
 
simongales
Topic Author
Posts: 7
Joined: Tue Apr 04, 2006 12:59 pm

Trying to build VLC 0.8.4 for the Roku HD1000

Fri May 05, 2006 2:14 pm

Progress report:
* MP3's play
* Shoutcast streams play
* Ogg files DON'T play - though libogg/libvorbis build fine, sigh. I'll come back to this.
* HTTP interface for VLC works :-)
* nCurses interface for VLC works (for telnet users)
* FLAC files should work, haven't tested yet.
* Can't get Live555 library to compile (makefile broken?), will come back to this, this is for RTSP streams.

Moving on to getting the hd1000v video output module working...

Just when I thought I was ahead of the game, VLC 0.8.5 appears :-).[/list]
 
andy
Posts: 229
Joined: Mon Aug 23, 2004 7:54 pm
Contact:

Sat May 06, 2006 1:03 pm

Simon,

This is really interesting, thanks for working on this.

I am particularly interested in the curses interface, what can you do with it?

Also, is it at the stage where you could post binaries somewhere? I think some of us would be interested in trying it out.

Thanks for all of your work on this.

-Andy
Andy Oliver
LiveSpy: Watch Live Webcams:http://frequal.com/LiveSpy/roku/index.html
VncSix: Web Surfing+:http://frequal.com/roku/VncSix/index.html
SongInfo:http://frequal.com/roku/SongInfo/index.html
 
simongales
Topic Author
Posts: 7
Joined: Tue Apr 04, 2006 12:59 pm

Sun May 07, 2006 6:04 am

There are (at least) three interfaces to VLC when you don't have a keyboard or mouse: rc, ncurses, and http.

I got into this because I wanted to control my ROKU from my backyard, via my laptop/wifi. The ncurses interface is quick and easy to use, but is buggy (can crash vlc). Long term, the http interface is the way to go.

This is not ready for release just yet, but maybe in a couple of weeks. Todo list:
- update to VLC 0.8.5 (newer web interface)
- get LiveMedia streaming working (today maybe)
- get Ogg/Vorbis working (broken, not sure what's up here)
- Find a place to host the files

I'd love to get video playback working, but the Roku may not have the RAM needed for that.

rc - remote control interface - telnet into the roku, run vlc, and enter commands:
# ./vlc
VLC media player 0.8.4a Janus
Remote control interface initialized, `h' for help
h
+----[ Remote control commands ]
|
| add XYZ  . . . . . . . . . . add XYZ to playlist
| playlist . . .  show items currently in playlist
| play . . . . . . . . . . . . . . . . play stream
| stop . . . . . . . . . . . . . . . . stop stream
| next . . . . . . . . . . . .  next playlist item
| prev . . . . . . . . . .  previous playlist item
| goto . . . . . . . . . . . .  goto item at index
| clear . . . . . . . . . . .   clear the playlist
| status . . . . . . . . . current playlist status
| title [X]  . . . . set/get title in current item
| title_n  . . . . . .  next title in current item
| title_p  . . . .  previous title in current item
| chapter [X]  . . set/get chapter in current item
| chapter_n  . . . .  next chapter in current item
| chapter_p  . .  previous chapter in current item
|
| seek X . seek in seconds, for instance `seek 12'
| pause  . . . . . . . . . . . . . .  toggle pause
| fastforward  . . . . . .  .  set to maximum rate
| rewind  . . . . . . . . . .  set to minimum rate
| faster . . . . . . . .  faster playing of stream
| slower . . . . . . . .  slower playing of stream
| normal . . . . . . . .  normal playing of stream
| f [on|off] . . . . . . . . . . toggle fullscreen
| info . . .  information about the current stream
|
| volume [X] . . . . . . . .  set/get audio volume
| volup [X]  . . . . .  raise audio volume X steps
| voldown [X]  . . . .  lower audio volume X steps
| adev [X] . . . . . . . . .  set/get audio device
| achan [X]. . . . . . . .  set/get audio channels
| menu [on|off|up|down|left|right|select] use menu
|
| help . . . . . . . . . . . . . this help message
| longhelp . . . . . . . . . a longer help message
| logout . . . . .  exit (if in socket connection)
| quit . . . . . . . . . . . . . . . . .  quit vlc
|
+----[ end of help ]


ncurses - telnet into the roku, set TERM & TERMINFO, then run "vlc -Incurses", press keys. Note - there are only a few builtin terminal definitions: ansi, vt100, and vt102.

# export TERMINFO=/usr/share/terminfo
# export TERM=vt102
# vlc -Incurses

Here's the online help:
[Display]
     h,H         Show/Hide help box
     i           Show/Hide info box
     L           Show/Hide messages box
     P           Show/Hide playlist box
     B           Show/Hide filebrowser

[Global]
     q, Q        Quit
     s           Stop
     <space>     Pause/Play
     f           Toggle Fullscreen
     n, p        Next/Previous playlist item
     [, ]        Next/Previous title
     <, >        Next/Previous chapter
     <right>     Seek +1%
     <left>      Seek -1%
     a           Volume Up
     z           Volume Down

[Playlist]
     r           Random
     l           Loop Playlist
     R           Repeat item
     o           Order Playlist by title
     O           Reverse order Playlist by title
     /           Look for an item
     A           Add an entry
     D, <del>    Delete an entry
     <backspace> Delete an entry

[Filebrowser]
     <enter>     Add the selected file to the playlist
     <space>     Add the selected directory to the playlist
     .           Show/Hide hidden files

[Boxes]
     <up>,<down>     Navigate through the box line by line
     <pgup>,<pgdown> Navigate through the box page by page

[Player]
     <up>,<down>     Seek +/-5%

[Miscellaneous]
     Ctrl-l          Refresh the screen


And a pic of the interface in use:
Image

Lastly, there's the http interface. VLC comes with a basic set of web pages to manipulate the playlist, start/stop/pause, etc. You start vlc with "vlc -Ihttp", then point a browser at http://your-roku-ip:8080. Unfortunately, the roku already has a web page on port 8080 (anyone know what this is?), so you have to change the port with "vlc -Ihttp --http-host=:8888" then surf to http://your-roku-ip:8888".
Sorry, don't have a pic of this.

FYI, you can run multiple interfaces - "vlc -Incurses --extraintf http"
 
r111
Posts: 202
Joined: Thu Aug 19, 2004 8:38 am
Location: Orange Co, CA
Contact:

Mon May 08, 2006 1:03 pm

previous folks on this board have ported older versions of vlc to the HD1K. Although they were sucessful with audio, the HD1K's CPU is not powerful enough for the vlc software video codecs. The HD1K's video capabilities are within the Xillion video processing chip. If you search this forum for vlc, you may find some more info on this.
 
simongales
Topic Author
Posts: 7
Joined: Tue Apr 04, 2006 12:59 pm

Mon May 08, 2006 4:00 pm

Indeed, but it was worth a shot, even if all I got was goom to work.

It's actually failing when it tries to allocate shared memory for video frames. Haven't investigated further.

Are there any docs on the Xilleon chip available now? I know there weren't before, but thought I'd ask...
 
r111
Posts: 202
Joined: Thu Aug 19, 2004 8:38 am
Location: Orange Co, CA
Contact:

Tue May 09, 2006 7:47 am

From what I've gathered, the only way to access the Xillion features is through Roku's API. I've also never seen docs for the Xillion. I think Roku uses an interface library for the Xillion that comes from ATI (the maker of the Xillion). If you wanted to program directly to the Xillion, I think you would have to dump the Roku OS. This chip is used in several models of cable set top boxes and also high end Mitsubishi HDTV's.
 
dgburns
Posts: 807
Joined: Mon Jun 27, 2005 9:37 am

Tue May 09, 2006 10:32 am

r111 wrote:
previous folks on this board have ported older versions of vlc to the HD1K. Although they were sucessful with audio, the HD1K's CPU is not powerful enough for the vlc software video codecs. The HD1K's video capabilities are within the Xillion video processing chip. If you search this forum for vlc, you may find some more info on this.

We could dream though! Me, I'd just like to have a PB remote browsable interface on my TV, via which I could play back the 1-2Mb/s XVID/DIVX avi's that have MP3 or AC3 audio, locally transcoded on the Roku itself. :) In other words, get the benefits of a UPnP server without having to run a server. TheaterSix supposedly was gonna get close, but I never saw any progress getting the vlc moved to the Roku, nor could I ever get it running in the first place. :(
HD-1500 RevB #1 (media room)
Mitsubishi WD-62528 62" LCD RPTV
Kenwood VR-407 receiver w/PSB Alpha's
PS/3 60GB (now 250GB) w/750GB Seagate ext
M1000 (upstairs)
HD-1000 RevB #2 (bedroom)
Visco 32" LCD
AR 2.1 audio system
PS/2
 
r111
Posts: 202
Joined: Thu Aug 19, 2004 8:38 am
Location: Orange Co, CA
Contact:

Tue May 09, 2006 11:37 am

TheaterSix was promissing, but the last few versions did not work for me.

UPNP server (Nero or TVersity) on a PC and MPlay seems to be the best way to play transcoded video on the HD1K.
 
dgburns
Posts: 807
Joined: Mon Jun 27, 2005 9:37 am

Tue May 09, 2006 12:48 pm

r111 wrote:
TheaterSix was promissing, but the last few versions did not work for me.

UPNP server (Nero or TVersity) on a PC and MPlay seems to be the best way to play transcoded video on the HD1K.

Ja. I haven't had time to play with Nero 8's UPnP yet, but it holds promise. Nero 7's UPnP didn't work with XVID's (at least I could never get it working).

Anyone have any experience with a UPnP server that runs on a Linux box? I'm just not ready to go the whole Myth/Slim route yet....
Last edited by dgburns on Wed May 10, 2006 3:55 am, edited 1 time in total.
HD-1500 RevB #1 (media room)

Mitsubishi WD-62528 62" LCD RPTV

Kenwood VR-407 receiver w/PSB Alpha's

PS/3 60GB (now 250GB) w/750GB Seagate ext

M1000 (upstairs)

HD-1000 RevB #2 (bedroom)

Visco 32" LCD

AR 2.1 audio system

PS/2
 
pxegeek
Posts: 94
Joined: Mon Jan 24, 2005 9:23 pm

Tue May 09, 2006 7:44 pm

Unfortunately, the roku already has a web page on port 8080 (anyone know what this is?)

It's the Upnp web server. It showed up when upnp support was added. Did anyone figure out how to change the ROM Pager default webpage, so that we can use it for something more useful than 'hello world'?

Who is online

Users browsing this forum: No registered users and 2 guests