Overlay Support in Display Driver

A-O-A,

I am giving overlay support in my display driver. I am allocating system
memory for creating overlay support. I am able to successfully copy overlay
over the primary surface. Currently I am just copying the overlay over the
primary surface without stretching. Can any one tell me the algorithm that
is used for overlay stretchblitting. Waiting for the response.

Also IF some one can solve these Problems:

  1. I am copying and pasting the overlay to the primary surface in the
    diaplay driver (I mean in the software). I am simply blitting the overlay
    using memcpy to the primary surface. When I see the final frame, it shows
    the video frames but very crude. I mean, I know that I have to do
    stretchBlt, but the problem is, the frames are so crude, I doubt it doesn’t
    have the color information. I just want to know, whether I have to do some
    thing more other than Blitting. I mean should I have to do something for the
    colors as well.

  2. I have created two DirectDraw heaps and set their attributes in
    DrvGetDirectDrawInfo. I have declared one heap for overlay use and the
    second one as offscreenplane. The problem is, when DdUpdateOverlay is
    called, the Source surface is the surface for which I have set the
    OffScreenPlane attributes and not the other surface which was actually
    declared to be used as overlay. Also It is not being refered in any call
    made by DirectDraw. If you have any idea, please help me.

  3. on http://www.hauppauge.com/pages/faq/support_faq_vgainfo.html, it is
    written:

If you use a graphics card that does not have this support (Overlay Surface
support), you can use Primary Surface type of Overlay. Primary Surface still
requires Direct Draw and Direct X support, but the overlay will be processed
in the primary video buffer since the card does not have an Overlay buffer.

the question is how could we use Primary Surface type of Overlay. I hope
someone
can explain these better.

Regards,

Asif

Ok, as someone else mentioned, if you don’t HAVE to support this particular
DVD player application, there are others that do DVD playing without
overlay, and that may be a better option.

  1. So what format does your overlay data come in as? It could be that your
    copy is not done correctly. I don’t think it’s your task to stretch the
    data to the size it’s intended for, as I’m pretty sure that the data given
    to the driver is the correct size already. However, it may be that the
    format of the overlay isn’t RGB, but some other format, and that will
    obviously cause all sorts of “interesting” effects if the data is
    interpreted as RGB, but really is some other format. I believe it may be
    16-bit YUV encoded, but I could have that all wrong, as I work mostly with
    the 2D (GDI) side of our driver.

  2. Don’t know how this part of the driver works, and I’m sorry to say that
    I’m not going to dig through the DirectX driver to figure out, it’s a bit
    too big. :frowning:

  3. Don’t really know. We have hardware for this purpose, so it’s not a
    problem in our driver.


Mats

xxxxx@lists.osr.com wrote on 02/07/2005 10:04:57 AM:

A-O-A,

I am giving overlay support in my display driver. I am allocating system
memory for creating overlay support. I am able to successfully copy
overlay
over the primary surface. Currently I am just copying the overlay over
the
primary surface without stretching. Can any one tell me the algorithm
that
is used for overlay stretchblitting. Waiting for the response.

Also IF some one can solve these Problems:

  1. I am copying and pasting the overlay to the primary surface in the
    diaplay driver (I mean in the software). I am simply blitting the overlay
    using memcpy to the primary surface. When I see the final frame, it shows
    the video frames but very crude. I mean, I know that I have to do
    stretchBlt, but the problem is, the frames are so crude, I doubt it
    doesn’t
    have the color information. I just want to know, whether I have to do
    some
    thing more other than Blitting. I mean should I have to do something for
    the
    colors as well.

  2. I have created two DirectDraw heaps and set their attributes in
    DrvGetDirectDrawInfo. I have declared one heap for overlay use and the
    second one as offscreenplane. The problem is, when DdUpdateOverlay is
    called, the Source surface is the surface for which I have set the
    OffScreenPlane attributes and not the other surface which was actually
    declared to be used as overlay. Also It is not being refered in any call
    made by DirectDraw. If you have any idea, please help me.

  3. on http://www.hauppauge.com/pages/faq/support_faq_vgainfo.html, it is
    written:

If you use a graphics card that does not have this support (Overlay
Surface
support), you can use Primary Surface type of Overlay. Primary Surface
still
requires Direct Draw and Direct X support, but the overlay will be
processed
in the primary video buffer since the card does not have an Overlay
buffer.

the question is how could we use Primary Surface type of Overlay. I hope
someone
can explain these better.

Regards,

Asif


Questions? First check the Kernel Driver FAQ at http://www.
osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@3dlabs.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

ForwardSourceID:NT0000C44A