I know this has been mentioned several times in the past but I don't think 
anyone has made any progress in getting hardware MPEG decoding on the Via 
CLE266 and related chips from DirectFB apps. I have a Via Epia system running 
vdr with softdevice using DirectFB TV-out output, and this works really well 
but it is just on the limit of what the CPU can do when it is decoding the 
MPEG2 stream in software, so I get a few jerks and A-V sync isn't as good as 
it should be. I've started looking into this again now...

Currently, softdevice uses libavcodec to do the actual MPEG2 decoding. What I 
was hoping for was a simple slot-in solution where I just pass the relevant 
MPEG2 data to a different library, retrieve the decoded frames, and leave 
softdevice to display them using DirectFB.

Here is a summary of what I've found and my understanding:

libddmpeg: the original one from Via and the one reverse engineered by Ivor 
Hewitt. I believe that both of these rely on X and so aren't as helpful as 
I'd like them to be for this instance.

VeXP-VIAXine: not really delved into this but I think this requires X too.

cle266mp-plugin: This is an output plugin for mplayer. Still in the process of 
studying this. Not sure whether it requires X or not, i.e. whether this 
plugin displays the video as well as decoding it.

mtest: not fully built this yet because it requires a patch to DirectFB. It 
seems to need /dev/cle266vgaio which linux-viafb from DirectFB doesn't 
provide. (Seen mention of using the cle266vgaio module at the same time as 
the viafb module: not looked into this yet.) This one only depends on 
DirectFB but only decodes video and not audio.

All of the above (except mtest) are tied into X so mtest is probably the 
easiest starting point. Nothing that I've found does _just_ decoding: they 
all decode and display the images.

>From reading old (2003/2004) forum threads on viaarena, I think the MPEG 
decoder decodes slices rather than frames: the input stream is broken into 
the relevant slices, these are fed into the decoder, the decoding is 
initiated, and then the slices are read back out and combined into a frame. 
Now, I'm not totally sure whether the data can be read back from the decoder 
or whether it goes directly to a framebuffer from there, somehow!

It doesn't look like mtest has been touched since 2004. I think Ivor's 
libddmpeg has been replaced by the Unichrome project which is a driver for 
Xorg.

Has anyone made any more progress with this or am I starting from scratch? 
Ultimately, the best route would probably be to incorporate hardware decoding 
into ffmpeg or similar but, for now, I'd just be happy to get it working from 
softdevice!

:)

Cheers,

Laz

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to