summaryrefslogtreecommitdiff
path: root/extra/ogle/xvideofix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ogle/xvideofix.patch')
-rw-r--r--extra/ogle/xvideofix.patch205
1 files changed, 0 insertions, 205 deletions
diff --git a/extra/ogle/xvideofix.patch b/extra/ogle/xvideofix.patch
deleted file mode 100644
index aafde447a..000000000
--- a/extra/ogle/xvideofix.patch
+++ /dev/null
@@ -1,205 +0,0 @@
---- ogle-0.9.2/mpeg2_video/video_output_x11.c 2003-11-04 04:02:10.000000000 -0800
-+++ ogle-0.9.2-patch/mpeg2_video/video_output_x11.c 2005-04-22 18:37:56.000000000 -0700
-@@ -286,6 +286,7 @@
- }
- }
-
-+
- /* This section of the code looks for the Xv extension for hardware
- * yuv->rgb and scaling. If it is not found, or any suitable adapter
- * is not found, use_xv will be set to 0. Otherwise it allocates a
-@@ -299,121 +300,136 @@
- {
- int xv_found = 0;
- #ifdef HAVE_XV
-- int i, j;
-+ int i, j, k;
- int result;
-
- xv_port = 0; /* We have no port yet. */
--
-+
- /* Check for the Xvideo extension */
-- result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
-- &xv_request_base, &xv_event_base,
-+ result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
-+ &xv_request_base, &xv_event_base,
- &xv_error_base);
- if(result != Success) {
- WARNING("%s", "Xvideo extension not found\n");
- use_xv = 0;
- return;
- }
--
-+
- NOTE("Found Xv extension %d.%d, checking for suitable adaptors\n",
- xv_version, xv_release);
--
-+
- /* Check for available adaptors */
-- result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
-+ result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
- &xv_num_adaptors, &xv_adaptor_info);
- if(result != Success) {
- WARNING("%s", "No Xv adaptors found\n");
- use_xv = 0;
- return;
- }
--
-+
- /* Check adaptors */
- for(i = 0; i < xv_num_adaptors; i++) {
--
-+
- /* Is it usable for displaying XvImages */
- if(!(xv_adaptor_info[i].type & XvInputMask) ||
- !(xv_adaptor_info[i].type & XvImageMask))
- continue;
--
-- xv_port = xv_adaptor_info[i].base_id;
--
-- /* Check image formats of adaptor */
-- xv_formats = XvListImageFormats(mydisplay, xv_port, &xv_num_formats);
-- for(j = 0; j < xv_num_formats; j++) {
-- if(xv_formats[j].id == 0x32315659) { /* YV12 */
-- //if(xv_formats[j].id == 0x30323449) { /* I420 */
-- xv_id = xv_formats[j].id;
-- break;
-- }
-- }
-- /* No matching format found */
-- if(j == xv_num_formats)
-- continue;
--
-- NOTE("Xv adaptor \"%s\" port %li image format %i\n",
-- xv_adaptor_info[i].name, xv_port, xv_id);
--
-- /* Allocate XvImages */
-+
-+ /* Check Available Ports */
-+ for (j = 0; j < xv_adaptor_info[i].num_ports && !xv_port ; j++) {
-+
-+ /* Check Image formats of adaptor */
-+ xv_formats = XvListImageFormats(mydisplay,xv_adaptor_info[i].base_id + j, &xv_num_formats);
-+ for (k = 0; k < xv_num_formats; k ++) {
-+
-+ /* Check for proper format (YV12) and see if we can grab the port */
-+ if ( (xv_formats[k].id == 0x32315659) && (XvGrabPort(mydisplay,xv_adaptor_info[i].base_id + j,0) == Success) ) {
-+ xv_id = xv_formats[k].id;
-+ xv_port = xv_adaptor_info[i].base_id + j;
-+ break;
-+ }
-+
-+ }
-+
-+ /* delete stuff nicely */
-+ XFree(xv_formats);
-+ }
-+
-+ /* Check next Adapter */
-+ if (xv_port==0) continue;
-+
-+ /* Report what we found */
-+ NOTE("Xv adaptor \"%s\" port %li image format %i\n", xv_adaptor_info[i].name, xv_port, xv_id);
-+
-+ /* Allocate XvImage */
- xv_image = XvShmCreateImage(mydisplay, xv_port, xv_id, NULL,
- padded_width,
-- padded_height,
-+ padded_height,
- &shm_info);
--
-- /* Got an Image? */
-+
-+ /* Got an milk? */
- if(xv_image == NULL)
- continue;
--
-+
- /* Test and see if we really got padded_width x padded_height */
- if(xv_image->width != padded_width ||
- xv_image->height != padded_height) {
- FATAL("XvShmCreateImage got size: %d x %d\n",
- xv_image->width, xv_image->height);
- exit(1);
-- }
--
-+ }
-+
-+ /* Now Finish Up */
- shm_info.shmid = picture_buffer_shmid;
- shm_info.shmaddr = picture_buffer_addr;
--
-- /* Set the data pointer to the decoders picture segment. */
-+
-+ /* Set the data pointer to the decoders picture segment. */
- // xv_image->data = picture_data->y;
- shm_info.readOnly = True;
--
-+
- /* make sure we don't have any unhandled errors */
- XSync(mydisplay, False);
--
-+
- /* set error handler so we can check if xshmattach failed */
- prev_xerrhandler = XSetErrorHandler(xshm_errorhandler);
--
-+
- /* get the serial of the xshmattach request */
- req_serial = NextRequest(mydisplay);
--
-+
- /* try to attach */
- XShmAttach(mydisplay, &shm_info);
--
-+
- /* make sure xshmattach has been processed and any errors
- have been returned to us */
- XSync(mydisplay, False);
--
-+
- /* revert to the previous xerrorhandler */
- XSetErrorHandler(prev_xerrhandler);
--
-+
- if(use_xshm) {
- #if 0
- shmctl(shm_info.shmid, IPC_RMID, 0); // only works on Linux..
- #endif
--
-+
- CompletionType = XShmGetEventBase(mydisplay) + ShmCompletion;
- }
- xv_found = 1;
-
- /* All set up! */
- break;
-- }
-+ }
-+
-+ /* Clean up */
-+ XvFreeAdaptorInfo(xv_adaptor_info);
-+
- #endif /* HAVE_XV */
-+ /* In case we didn't find a working Xv */
- if(!xv_found) {
- use_xv = 0;
-- }
--}
--
-+ }
-+
-+ }
-+
-
- /* This section of the code tries to use the MIT XShm extension for
- * accellerated transfers to to X. XShm extension is need and only
-@@ -1726,6 +1742,8 @@
-
- if(mydisplay) {
- XSync(mydisplay,True);
-+ if (use_xv)
-+ XvUngrabPort(mydisplay,xv_port,CurrentTime);
- if(use_xshm)
- XShmDetach(mydisplay, &shm_info);
- if(window.ximage != 0)