[vdr] Trouble with softdevice -vo dfb:mgatv OSD with vdr 2.0.4

Marko Mäkelä 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 
>RenderPixmaps() loop.

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 

vdr 2.0.4
ffmpeg 0.5.13
DirectFB 1.0.1
DFB++ 1.0.0

Best regards,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: softdevice-vdr2.0.4-1u.patch
Type: text/x-diff
Size: 19382 bytes
Desc: softdevice-vdr2.0.4.patch
URL: <http://www.linuxtv.org/pipermail/vdr/attachments/20131104/ea483ff5/attachment.patch>

More information about the vdr mailing list