Re: OSD and subtitles trouble

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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,

	Marko

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr





[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux