Mailing List archive

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

[linuxtv-softmpeg] Re: VDR playback



Hello Colin,

On 02/19/04 22:24, ac2crp@blueyonder.co.uk wrote:
I did another quick test with the new code, and the OSD works with me too, when used with the latest DirectFB.
Ok.

However, the video does not :-)
I suspect that the video might be being rendered to the primary surface, where YUV to RGB conversion is being done in software. Whereas video was quite smooth before, it only updates about once per second just now, and even then only the parts containing the OSD update.
I get 'else case encountered - might crash' warnings from libsoftmpeg which would seem to validate this theory.
I can't debug it ATM (I get into trouble if I run an ethernet cable to the TV.. Tsk! Wires all over the house are *good*) but will try at the weekend.
Thanks again for valuable tests! I must apologize, it was my fault. I developped the latest stuff on my G400, without testing it thorougly on the cle266. Sorry!

The problem was, that the videolayer of the G400 is a video overlay, ie. it hides the primary surface completely. One solution would be to use destination colorkeying and the windows will be visible again. Unfortunately, you wouln't have alphablending for the osd windows in that case, which looks awful.

So the solution is to ignore the videolayer and create a window on the RGB primary layer for the video. We then use an "intermediate" surface in yuv format, where we put the decoded video. Upon vertical sync, we use the hardware colorspace conversion of the G400 to blit the video to the primary layer. Now we can have alpha-blended osd windows as well.

The cle266, however, has a video underlay, ie. the video is below the primary layer. There, we can use the video layer and have alpha-blended osd windows on the primary layer.

I added some hackish code to the "softmpeg" vdr plugin. The default case is to assume that the video is a video underlay, so the new code should work for you by default.

In case you use a card with a video overlay, you need to set the environment variable "DIRECTFB_VIDEO_IS_OVERLAY" (ie.
export DIRECTFB_VIDEO_IS_OVERLAY=1).

Colin
CU
Michael.


--
Info: To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linuxtv-softmpeg" as subject.



Home | Main Index | Thread Index