On Tue, 13 Apr 2004, Mark Cuss wrote:

> Okay - I've done some digging and found the problem...

> To recap, our application decodes MPEG-2 video into a video window and draws
> overlays on top of the video.  The problem was that the two seemed to
> "fight", causing the overlays to blink every time the video was refreshed
> (ie - 30 Hz or so)

> The following code is from the 4.4.0 X server source, i830_video.c, line
> 1416:
>   /* update cliplist */
>    /*
>     * XXX Always draw the key.  LinDVD seems to fill the window background
>     * with a colour different from the key.  This works around that.
>     */
>    if (1 || !REGION_EQUAL(pScreen, &pPriv->clip, clipBoxes)) {
>       REGION_COPY(pScreen, &pPriv->clip, clipBoxes);
>       xf86XVFillKeyHelper(pScreen, pPriv->colorKey, clipBoxes);
>    }

> This code seems to be the offender...  If I comment out the whole if block,
> things work as they should - the video is drawn into the YUV buffer, the
> overlays are drawn into the RGB buffer, and things blit together OK.

> I'm by no means a driver expert, but by the looks of the comments above this
> block of code, it looks like there was a bug in LinDVD that was worked
> around in the driver...

> Now - another somewhat related problem.  When the MPEG-2 software is
> decoding and displaying video, at times video is drawn outside the video
> application in random blocks on the screen (ie - in terminal windows, on the
> desktop, etc.)  This seems to happen whether the above mentioned block is
> commented out or not, so I don't think I introduced the bug.

> Does anyone have any suggestions?

How does commenting out the "1 || " part affect this problem?

Marc.

+----------------------------------+-----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310           |
|  Computing and Network Services  |  fax:    1-780-492-1729           |
|  352 General Services Building   |  email:  [EMAIL PROTECTED]          |
|  University of Alberta           +-----------------------------------+
|  Edmonton, Alberta               |                                   |
|  T6G 2H1                         |     Standard disclaimers apply    |
|  CANADA                          |                                   |
+----------------------------------+-----------------------------------+
XFree86 developer and VP.  ATI driver and X server internals.

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to