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
