[mythtv] [PATCH] Multiple playback with Xv

Pigeon pigeon at pigeond.net
Sat May 29 07:18:21 EDT 2004


    Whoops, I'm so sorry. That last patch was bad. This is the real patch.





-------------- next part --------------
--- libs/libmythtv/videoout_xv.cpp	Thu May 20 16:15:53 2004
+++ libs/libmythtv/videoout_xv.patched.cpp	Sat May 29 21:14:28 2004
@@ -272,13 +272,23 @@
     else
         if (ai)
         {
-            for (i = 0; i < p_num_adaptors; i++) 
+            for (i = 0; (i < p_num_adaptors) && (xv_port == -1); i++) 
             {
                 if ((ai[i].type & XvInputMask) &&
                     (ai[i].type & XvImageMask))
                 {
-                    xv_port = ai[i].base_id;
-                    break;
+                    for(unsigned int p = ai[i].base_id;
+                            p < (ai[i].base_id + ai[i].num_ports);
+                            p++)
+                    {
+                        if(XvGrabPort(data->XJ_disp, p, CurrentTime) == Success)
+                        {
+                            xv_port = p;
+                            VERBOSE(VB_GENERAL,
+                                    QString("Using XV port %1").arg(xv_port));
+                            break;
+                        }
+                    }
                 }
             }
  
@@ -375,8 +385,6 @@
         if (fo)
             XFree(fo);
 
-        VERBOSE(VB_GENERAL, QString("Using XV port %1").arg(xv_port));
-        XvGrabPort(data->XJ_disp, xv_port, CurrentTime);
     }
 
     data->XJ_gc = XCreateGC(data->XJ_disp, data->XJ_win, 0, 0);


More information about the mythtv-dev mailing list