[vdr] Trouble with softdevice -vo dfb:mgatv OSD with vdr 2.0.4
marko.makela at iki.fi
Sun Nov 3 23:42:32 CET 2013
On Sun, Nov 03, 2013 at 10:01:54PM +0200, Marko Mäkelä wrote:
>On Fri, Nov 01, 2013 at 11:19:48PM +0200, Marko Mäkelä wrote:
>>If I change the assignment to isTrueColor=false, the square goes
>>away and I will get the familiar gray rectangles on the screen
>>(from the "else" block that I omitted above).
>I did some further studying. The truecolor OSD was implemented early
>2011. As far as I understand, the softdevice plugin is converting
>palette-based bitmaps into an ARGB layer. There is a comment at the
>end of the definition of class cOsd in osd.h that shows how the
>conversion should be done.
>It looks like I should simply follow this example, possibly
>implementing some kind of threshold mapping on the Alpha channel in
>case the Matrox does not implement 8-bit translucency but just a
>1-bit transparency flag. So, I will try to remove the palette mapping
>from SoftOsd.c and replace the GetBitmap() call with the
I figured this out for the most part. The pixmap gets first converted to
an ARGB buffer cSoftOsd::OSD_Bitmap in FlushPixmaps() and
DrawConvertPixmap(). From OSD_Bitmap it gets converted to the screen
memory. I did not change the latter conversion.
Maybe I did something wrong regarding DirtyDrawPort and DirtyViewport,
because I got occasional crashes when activating the OSD. When using a
full-screen OSD (filling the entire 1280×1024 panel) the bottom 4 or so
lines were never erased.
I did not get to see DVB subtitles yet, either due to them not being
present in the live sendings at the moment I tested, or due to
misconfiguration. I guess that VDR 2.0 would allow the subtitles to be
alpha-blended with the OSD layer.
My patch against softdevice-cvs is attached. I compiled it with the
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 19382 bytes
More information about the vdr