Yesterday I was bored and tried to use the xine plugin instead of the dxr3 plugin. It works, it doesn't need more cpu than the dxr3 plugin (maybe a little more memory) *but* the osd is missing some colours (xine limits the number of colours to 4 for the dxr3 display, I think that it's the supposed limit, even if the dxr3 plugin manages to get more than that), the yaepg plugin only shows the summary (not the grid) and my plugin ;-) doesn't show at all. Anyway, the scaling of the osd is *much* better than what's provided in the dxr3 plugin, so I "transplanted" there some of the xine routines. Unfortunately I only managed to adapt the ScaleBitmapLQ (as in "Low Quality") and not the ScaleBitmapHQ one (the latter gives *very* good results with the xine plugin, the former only "good enough", pity for the missing colours). Note also that it does take care for the (rare) channels that have a different vertical resolution (the original dxr3 plugin always uses 576 lines), so I had to change some other files to get the vertical resolution from the pes frames. Here's the patch against the fully patched version at http://cachalot.mine.nu/src/dxr3/ There's also a little thing totally unrelated: a rate refresh limit, since the osd goes berserk here if it's refreshed too often. If you don't need it or don't like the delay simply change the
#define FLUSHRATE 50
(that's 50ms) in dxr3osd_subpicture.h to
#define FLUSHRATE 0
Bye