This is a binary of the VideoLAN client, version 0.8.2 (final)
(see http://www.videolan.org/ for details) for the Sharp Zaurus
SL-5500 running ROM 2.38 (yes, it will also run on 3.13, and most
likely on 3.10 as well, although I didn't test the latter). It is
statically linked, so no additional installation of any shared
libraries is needed. I did not compress the binary, since the uclx
decompressor creates a temporary file the size of the original
executable in /tmp while running a binary. This may not be what
everybody wants, so I decided to leave it uncompressed. If you want to
compress it yourself, feel free to do so :)

The configuration of this build includes ffmpeg (CVS 2005-05-12),
Tremor, mpeg2dec 0.4.0 (patched with Agawa Koji's excellent motion
compensation code for ARM), libtheora 1.0alpha4, FAAD2 (CVS
2005-02-05) beta, libmad 0.15.1b, liba52 0.7.5 (CVS 2005-03-16),
libdvbpsi (SVN 108 2005-05-12), speex 1.1.7, live.com's RTSP library
and who knows what else ;) -- so it should happily play most MPEG and
OGG you can throw at it.

Yes, it will also do live streaming of HTTP AAC, mp3 and Vorbis
sources, as well as playback of MPEG-4 RTSP live streams, as served
by, e.g. Apple's Darwin Streaming Server. A quick note: when playing
back HTTP streams, you may want to increase VLC's default cache to
something higher than its 2000ms default using the --http-caching
command line option.

RTSP playback occasionally crashes on startup, usually with a Bus
Error, which hints that there might be some alignment problem within
live.com's RTSP library (rumour has it that this is a problem which
is introduced by GCC V2 when building live.com's code). I'll look into
that eventually, but until then, you'll simply have to restart vlc
over again. Usually it will work fine on the second or third attempt.

A minor hack in the qte video_output module allows minimal control
of VLC using the Zaurus keys:

Cancel	Quits VLC
Up	Skip forward 30s
Down	Skip backward 30s
Left	Skip to previous item in playlist
Right	Skip to next item in playlist
Center	Pause/Play toggle
Space	Pause/Play toggle

This, of course, will only work with the QT/E video_output active
and also will _not_ work if you're using direct framebuffer access
(i.e. running without QT/E) -- unless you are selecting the ncurses
interface (--intf ncurses), which I hacked up to use a similar key
assignment (small caveat: seems the ncurses interface doesn't properly
reset the terminal when playing video, so you'll need to blindly reset
the terminal using 'stty sane' after termination).

Sorry, no ipkg, you'll have to 'install' it yourself. Since it's just
one executable, that shouldn't be too hard. I have faith in you :)

As for limitations, well -- video playback is a CPU intensive process,
and with a regularly clocked Collie (i.e. SA1100 @ 206 MHz), the limit
will be somewhere around 320x240@15fps when doing MPEG-4 video and
audio. Less resolution will allow for a higher frame rate, and using
MPEG-2 Audio (i.e. 'mp3') instead of MPEG-4 audio ('aac') will save a
few CPU cycles as well. You'll have to figure out what combination of
file format and codecs will suit you best.

A note on OGG: it seems that at this point, Theora is not yet
available in a version optimized for StrongARM, so it performs rather
poorly -- at 320x240, 15 fps will not quite be reached. I haven't
performed a lot of testing, but my gut feeling is that the limit is
somewhere around 14 fps or so with it. Again, smaller resolutions will
work with higher frame rates.

I managed to get H.264 up and running as well, but the performance
situation is (obviously?) even worse here than for Theora. Collie will
run QCIF (176x144) H.264 MPEG-4 with lower bit rate AAC LC nicely at
15 fps. At this point, higher resolutions or frame rates will not play
back gracefully, giving the codec (IMHO) a very limited usability.
Then again H.264 does give the most bang for the bit, quality-wise. As
before, you have to make up your own mind as to what you like best.

Generally speaking, video output is performing slightly better using
the frame buffer video output module (rather than the QT/E video
output module), but if you do run it under Qtopia, its output _will_
interfere with video playback somewhat (more or less annoyingly) and,
of course, controlling the beast becomes virtually impossible :)

Well, hope this helps.

Best regards,
Chris.
