Thanks to the list (specifically Mark and Matt) for all your help
lately.  These are the current issues we have with Xv.  I'm curious as to
what coding we can help with, and what is actively being worked on.

1) Performance is horrible.  All drivers should be using DMA to transfer
   images from system memory to video memory.  Apparently this is being
   done for X 4.2.  Which drivers are fixed and which still need work?

   Apparently, some chips can read frames right out of system memory
   without copying to video memory at all (rumor says this is true for
   i810).  Can we improve Xv performance in these cases?

2) For interlacing, I like the idea of an XV_FRAME_TYPE attribute:
   0 == frame, 1 == top field, 2 == bottom field.  I'm worried about
   the DRI API possibly not supporting stride on texture blits (is
   this true?) and I'm not sure how to handle this for DMA transfers.

3) Xv should be used to expose hardware RGB scaling everywhere, also
   with DMA transfers.  What cards still need fixing?

4) There is no distinction between rendering and display, and
   applications have no access to the buffering of frames in video
   memory.  In order to redraw the screen the entire image must be
   re-blit.  Consider a user moving the video output window when
   displaying a static image.  Also we have no way to copy an image to
   video memory and then show it later, which could greatly increase
   display timing accuracy for high-quality output.  A separation, like
   what XvMC has, would allow for better quality, much less memory
   bandwidth during stills, paused video, and window movement, and
   multi-buffering controlled by the application.

   Should we deprecate Xv and move to an XvMC-style API, or would there
   be an easy way to add this functionality to Xv?

   It seems to me that Xv maybe should act more like normal XImages.
   Why can't the video automatically be respositioned when the window is
   positioned?

5) Outstanding bugs that I'm aware of in Xv drivers:
   - The savage Xv driver fails in 24bpp mode.  Is anyone fixing this?
   - The i810 driver pukes some bad frames after the size of the input
     images changes. (like switch from 720x480 to 704x480 for when
     DVD-menus differ from the content).  Is this a bug?

6) Drivers claim to support modes that the hardware can't actually
   optimize.  An example is the Savage which claims to support YV12
   although it only supports YUY2.

6) libXv.a is only distributed as a non-PIC .a.

  This list taken from discussions on #ogle and #gstreamer on
irc.openprojects.net.

-- 
Billy Biggs                     [EMAIL PROTECTED]
http://www.billybiggs.com/      [EMAIL PROTECTED]

PGP signature

Reply via email to