diff options
-rw-r--r-- | src/video_out/video_out_pgx64.c | 6 | ||||
-rw-r--r-- | src/video_out/video_out_syncfb.c | 6 | ||||
-rw-r--r-- | src/video_out/video_out_vidix.c | 15 | ||||
-rw-r--r-- | src/video_out/video_out_xshm.c | 8 | ||||
-rw-r--r-- | src/video_out/video_out_xv.c | 12 | ||||
-rw-r--r-- | src/video_out/video_out_xvmc.c | 9 |
6 files changed, 42 insertions, 14 deletions
diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c index 94be4fdc9..d152193ee 100644 --- a/src/video_out/video_out_pgx64.c +++ b/src/video_out/video_out_pgx64.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_pgx64.c,v 1.46 2003/12/05 15:55:03 f1rmb Exp $ + * $Id: video_out_pgx64.c,v 1.47 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_pgx64.c, Sun PGX64/PGX24 output plugin for xine * @@ -924,6 +924,10 @@ static void pgx64_dispose(vo_driver_t *this_gen) this->class->instance_count--; pthread_mutex_unlock(&this->class->mutex); + XLockDisplay (this->display); + XFreeGC(this->display, this->gc); + XUnlockDisplay (this->display); + free(this); } diff --git a/src/video_out/video_out_syncfb.c b/src/video_out/video_out_syncfb.c index 9e2c1bee6..144c97018 100644 --- a/src/video_out/video_out_syncfb.c +++ b/src/video_out/video_out_syncfb.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_syncfb.c,v 1.94 2003/12/05 15:55:03 f1rmb Exp $ + * $Id: video_out_syncfb.c,v 1.95 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_syncfb.c, SyncFB (for Matrox G200/G400 cards) interface for xine * @@ -839,6 +839,10 @@ static void syncfb_dispose(vo_driver_t *this_gen) munmap(0, this->capabilities.memory_size); close(this->fd); + + XLockDisplay (this->display); + XFreeGC(this->display, this->gc); + XUnlockDisplay (this->display); free(this); } diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c index daa51fdd7..95214ce7d 100644 --- a/src/video_out/video_out_vidix.c +++ b/src/video_out/video_out_vidix.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_vidix.c,v 1.56 2003/12/05 15:55:03 f1rmb Exp $ + * $Id: video_out_vidix.c,v 1.57 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_vidix.c * @@ -919,11 +919,13 @@ static void vidix_exit (vo_driver_t *this_gen) { vdlClose(this->vidix_handler); #ifdef HAVE_X11 - if( this->xoverlay ) { - XLockDisplay (this->display); + XLockDisplay (this->display); + XFreeGC(this->display, this->gc); + + if( this->xoverlay ) x11osd_destroy (this->xoverlay); - XUnlockDisplay (this->display); - } + + XUnlockDisplay (this->display); #endif free (this); @@ -1111,6 +1113,8 @@ static void *init_class (xine_t *xine, void *visual_gen) { static void dispose_class (video_driver_class_t *this_gen) { vidix_class_t *this = (vidix_class_t *) this_gen; + + free (this); } @@ -1118,7 +1122,6 @@ static void dispose_class (video_driver_class_t *this_gen) { static vo_driver_t *vidix_open_plugin (video_driver_class_t *class_gen, const void *visual_gen) { vidix_driver_t *this = open_plugin(class_gen); config_values_t *config = this->config; - x11_visual_t *visual = (x11_visual_t *) visual_gen; XWindowAttributes window_attributes; diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c index 02b793d69..c3481a9cb 100644 --- a/src/video_out/video_out_xshm.c +++ b/src/video_out/video_out_xshm.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xshm.c,v 1.124 2003/12/05 15:55:04 f1rmb Exp $ + * $Id: video_out_xshm.c,v 1.125 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_xshm.c, X11 shared memory extension interface for xine * @@ -954,7 +954,11 @@ static void xshm_dispose (vo_driver_t *this_gen) { this->cur_frame->vo_frame.dispose (&this->cur_frame->vo_frame); this->yuv2rgb_factory->dispose (this->yuv2rgb_factory); - + + XLockDisplay (this->display); + XFreeGC(this->display, this->gc); + XUnlockDisplay (this->display); + if( this->xoverlay ) { XLockDisplay (this->display); x11osd_destroy (this->xoverlay); diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index 5d9516297..20b300f6a 100644 --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xv.c,v 1.186 2003/12/05 15:55:04 f1rmb Exp $ + * $Id: video_out_xv.c,v 1.187 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -1014,6 +1014,7 @@ static void xv_dispose (vo_driver_t *this_gen) { if(XvUngrabPort (this->display, this->xv_port, CurrentTime) != Success) { xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_out_xv: xv_exit: XvUngrabPort() failed.\n"); } + XFreeGC(this->display, this->gc); XUnlockDisplay (this->display); for( i=0; i < VO_NUM_RECENT_FRAMES; i++ ) { @@ -1334,6 +1335,12 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi } } + if(fo) { + XLockDisplay(this->display); + XFree(fo); + XUnlockDisplay(this->display); + } + /* * try to create a shared image * to find out if MIT shm really works, using supported format @@ -1420,8 +1427,7 @@ static void *init_class (xine_t *xine, void *visual_gen) { * check adaptors, search for one that supports (at least) yuv12 */ - if (Success != XvQueryAdaptors(display,DefaultRootWindow(display), - &adaptors,&adaptor_info)) { + if (Success != XvQueryAdaptors(display,DefaultRootWindow(display), &adaptors, &adaptor_info)) { xprintf(xine, XINE_VERBOSITY_DEBUG, "video_out_xv: XvQueryAdaptors failed.\n"); XUnlockDisplay(display); return NULL; diff --git a/src/video_out/video_out_xvmc.c b/src/video_out/video_out_xvmc.c index 7b1ec62f9..12a372134 100644 --- a/src/video_out/video_out_xvmc.c +++ b/src/video_out/video_out_xvmc.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xvmc.c,v 1.11 2003/12/06 18:11:56 mroi Exp $ + * $Id: video_out_xvmc.c,v 1.12 2003/12/13 00:55:11 f1rmb Exp $ * * video_out_xvmc.c, X11 video motion compensation extension interface for xine * @@ -1258,6 +1258,7 @@ static void xvmc_dispose (vo_driver_t *this_gen) { } XLockDisplay (this->display); + XFreeGC(this->display, this->gc); if(XvUngrabPort (this->display, this->xv_port, CurrentTime) != Success) { lprintf ("xvmc_dispose: XvUngrabPort() failed.\n"); } @@ -1530,6 +1531,12 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi } } + if(fo) { + XLockDisplay(this->display); + XFree(fo); + XUnlockDisplay(this->display); + } + /* * try to create a shared image * to find out if MIT shm really works, using supported format |