diff options
Diffstat (limited to 'extra/xawtv/xawtv-3.95-no-dga.patch')
-rw-r--r-- | extra/xawtv/xawtv-3.95-no-dga.patch | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/extra/xawtv/xawtv-3.95-no-dga.patch b/extra/xawtv/xawtv-3.95-no-dga.patch deleted file mode 100644 index 4509d4ba0..000000000 --- a/extra/xawtv/xawtv-3.95-no-dga.patch +++ /dev/null @@ -1,120 +0,0 @@ -diff -up xawtv-3.95/console/v4l-conf.c~ xawtv-3.95/console/v4l-conf.c ---- xawtv-3.95/console/v4l-conf.c~ 2008-08-03 22:22:01.000000000 +0200 -+++ xawtv-3.95/console/v4l-conf.c 2008-08-03 22:34:33.000000000 +0200 -@@ -221,6 +221,21 @@ displayinfo_x11(Display *dpy, struct DIS - } - } - -+#ifdef HAVE_LIBXXF86DGA -+static int dga_error = 0; -+static int dga_error_base; -+static int (*orig_xfree_error_handler)(Display *, XErrorEvent *); -+ -+static int dga_error_handler(Display *d, XErrorEvent *e) -+{ -+ if (e->error_code == (dga_error_base + XF86DGANoDirectVideoMode)) { -+ dga_error = 1; -+ return 0; -+ } -+ return orig_xfree_error_handler(d, e); -+} -+#endif -+ - static void - displayinfo_dga(Display *dpy, struct DISPLAYINFO *d) - { -@@ -228,7 +243,7 @@ displayinfo_dga(Display *dpy, struct DIS - int width,bar,foo,major,minor,flags=0; - void *base = NULL; - -- if (!XF86DGAQueryExtension(dpy,&foo,&bar)) { -+ if (!XF86DGAQueryExtension(dpy,&foo,&dga_error_base)) { - fprintf(stderr,"WARNING: Your X-Server has no DGA support.\n"); - return; - } -@@ -240,7 +255,14 @@ displayinfo_dga(Display *dpy, struct DIS - fprintf(stderr,"WARNING: No DGA support available for this display.\n"); - return; - } -+ orig_xfree_error_handler = XSetErrorHandler(dga_error_handler); - XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base,&width,&foo,&bar); -+ XSync(dpy, 0); -+ XSetErrorHandler(orig_xfree_error_handler); -+ if (dga_error) { -+ fprintf(stderr,"WARNING: No DGA direct video mode for this display.\n"); -+ return; -+ } - d->bpl = width * d->bpp/8; - d->base = base; - #else -diff -up xawtv-3.95/libng/plugins/drv0-v4l2.c~ xawtv-3.95/libng/plugins/drv0-v4l2.c ---- xawtv-3.95/libng/plugins/drv0-v4l2.c~ 2008-08-03 21:52:41.000000000 +0200 -+++ xawtv-3.95/libng/plugins/drv0-v4l2.c 2008-08-03 22:23:01.000000000 +0200 -@@ -618,7 +618,7 @@ v4l2_setupfb(void *handle, struct ng_vid - return -1; - - /* double-check settings */ -- if (NULL != base && h->ov_fb.base != base) { -+ if ((NULL != base && h->ov_fb.base != base) || h->ov_fb.base == NULL) { - fprintf(stderr,"v4l2: WARNING: framebuffer base address mismatch\n"); - fprintf(stderr,"v4l2: me=%p v4l=%p\n",base,h->ov_fb.base); - h->ov_error = 1; -diff -up xawtv-3.95/x11/xt.c~ xawtv-3.95/x11/xt.c ---- xawtv-3.95/x11/xt.c~ 2008-08-03 22:22:11.000000000 +0200 -+++ xawtv-3.95/x11/xt.c 2008-08-03 22:35:14.000000000 +0200 -@@ -1247,18 +1247,21 @@ FilterAction(Widget widget, XEvent *even - } - - /*----------------------------------------------------------------------*/ -+#ifdef HAVE_LIBXXF86DGA -+static int xfree_dga_error_base; -+#endif - - void - xfree_dga_init(Display *dpy) - { - #ifdef HAVE_LIBXXF86DGA -- int flags,foo,bar,ma,mi; -+ int flags,foo,ma,mi; - - if (!do_overlay) - return; - - if (args.dga) { -- if (XF86DGAQueryExtension(dpy,&foo,&bar)) { -+ if (XF86DGAQueryExtension(dpy,&foo,&xfree_dga_error_base)) { - XF86DGAQueryDirectVideo(dpy,XDefaultScreen(dpy),&flags); - if (flags & XF86DGADirectPresent) { - XF86DGAQueryVersion(dpy,&ma,&mi); -@@ -1348,6 +1351,19 @@ xfree_xinerama_init(Display *dpy) - #endif - } - -+#ifdef HAVE_LIBXXF86DGA -+static int (*orig_xfree_error_handler)(Display *, XErrorEvent *); -+ -+static int xfree_dga_error_handler(Display *d, XErrorEvent *e) -+{ -+ if (e->error_code == (xfree_dga_error_base + XF86DGANoDirectVideoMode)) { -+ have_dga = 0; -+ return 0; -+ } -+ return orig_xfree_error_handler(d, e); -+} -+#endif -+ - void - grabber_init() - { -@@ -1358,8 +1374,11 @@ grabber_init() - #ifdef HAVE_LIBXXF86DGA - if (have_dga) { - int bar,fred; -+ orig_xfree_error_handler = XSetErrorHandler(xfree_dga_error_handler); - XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base, - &screen.bytesperline,&bar,&fred); -+ XSync(dpy, 0); -+ XSetErrorHandler(orig_xfree_error_handler); - } - #endif - if (!do_overlay) { |