[maemo-developers] [maemo-developers] Xvideo support for Nokia 770?

From: Siarhei Siamashka siarhei.siamashka at gmail.com
Date: Thu Feb 8 09:16:15 EET 2007

It would be probably a good idea to discuss different possibilities for
improving multimedia support on 770/N800.

Now we have a fast JIT scaler that runs on ARM core, it solves all the 
video resolution related performance problems. I'm going to work on 
improving quality, performance and its inclusion into upstream ffmpeg 
library, this task is in my nearest plans:

As for the ways of improving multimedia support on Nokia 770, it may be 
done in the following ways (in no particular order):
1. Continue ffmpeg optimizations (motion compensation functions, finetune
idct, have a look at the possibilities to optimize codecs other than mpeg4 and
its variants)
2. Implement Xvideo extension support for Nokia 770 (using scaling done on 
ARM core)
3. Implement XvMC in some way (using C55x DSP for it as it is supposedly good
for IDCT and motion compensation stuff)
4. Improve GStreamer plugins (replacements for dspfbsink and dspmpeg4sink
running on ARM core, it could probably improve mpeg4 playback performance a
lot and allow using higher video bitrates and resolutions that are currently
available in MPlayer)
5. Try to relay color format conversion and scaling to DSP. If it works as
expected, video scaling can be done with almost zero overhead for ARM 
core. Theoretically the same trick could probably also work for GStreamer
if video output sink can provide its own buffer (::buffer_alloc). The first
step would be to try just doing nonscaled color format conversion. If it is
successful, some more advanced stuff can be tried such as JIT dynamic 
code generation on C55x.
6. Try porting vorbis decoder (tremor) to DSP
7. Try porting libmpeg2 to DSP. With audio decoding and scaling done on 
ARM core, it might improve overall mpeg2 playback performance, I wonder if
nonconverted DVD video playback is even theoretically possible on 
Nokia 770.

That's quite a big list and it contains some things that might be generally
nice to have, but have relatively low practical value and are actually not
worth efforts implementing :)

There are two issues that need to be solved for this all to become reality:
1. We need some way of applying community developed upgrades for core 
system components such as xserver and xlib (if we go after Xvideo support on
Nokia 770). They must be easy to install by end users, otherwise this all
development does not make much sense. It would be also nice to integrate 
these improvements into official firmware later, but I wonder if Nokia has
spare resources for doing this integration and its quality assurance.
2. Reliable information that is detailed enough for performing graphics and
audio output from DSP, see 

More information about the maemo-developers mailing list