On Sat, Nov 09, 2013 at 01:57:37AM +0200, Marko Mäkelä wrote:
(1) The bottom 1% lines of the OSD are not being cleared when the OSD extends that low. (I can choose up to 99% height and 0% vertical offset.)

This looks like a bug in DirectFB or the way how softdevice is using it. There is a comment related to Matrox in video-dfb.c, AFAIU related to the video layer, not the OSD layer.

I did a short test recording of a 4:3 program. Depending on the softdevice crop mode, the garbage area at the bottom shrinks (from about 3 lines to 1 or even 0).

(2) Changes in DVB subtitles will flash the OSD layer (make it empty for a very short time) if an OSD is active. I suppose that DVB subtitles should not be displayed at all when OSD layer is active.

This is a bug in SoftOsd.c or in video-dfb.c. The OpenOSD call in the cSoftOsd constructor was clearing the OSD layer on the physical screen, even when !cOsd::Active(). To fix this, I made cDFBVideoOut::OpenOSD() a no-op, or renamed it to cDFBVideoOut::ClearOSD(), which is where this clearing should have been done.

I also moved some of the initialization to cSoftOsd::Action(), which seems to be a more appropriate place. cSoftOsd derives from both cOsd and cThread, to do the intensive work in a background thread.

Now I have some trouble with VDR crashing every now and then when I press Recordings or Menu. I fixed most Valgrind warnings in Softdevice, so that it is silent when I press buttons to hide or show the OSD. There are some warnings left in cRect::Intersects() or similar, seemingly not related to softdevice code. I will investigate further.

Also, on VDR 2.0.4 startup, cRecordings::ScanVideoDir() is calling cRecording::cRecording(), which according to Valgrind is reading past some strdup() buffer. I do have libc6-dbg installed, so I hope it is not a false alarm. I only had 2 short test recordings in my video directory, so this should be easy to debug, once I rebuild vdr in debug mode. I only had debug symbols for softdevice in my session, and I did not yet try vgdb-server, which is better for multi-threaded programs.

Best regards,


vdr mailing list

Reply via email to