From 8331aa7802edef8be3cd8716db2adb1c449f8e29 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Wed, 8 Dec 2004 18:18:23 +0000 Subject: fix race reported by Reinhard CVS patchset: 7204 CVS date: 2004/12/08 18:18:23 --- src/xine-engine/video_overlay.c | 11 ++++++----- src/xine-engine/video_overlay.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/xine-engine/video_overlay.c b/src/xine-engine/video_overlay.c index b3a38bdde..36584b78a 100644 --- a/src/xine-engine/video_overlay.c +++ b/src/xine-engine/video_overlay.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_overlay.c,v 1.36 2004/11/24 15:45:58 mroi Exp $ + * $Id: video_overlay.c,v 1.37 2004/12/08 18:18:23 miguelfreitas Exp $ * */ @@ -215,13 +215,13 @@ static void video_overlay_reset (video_overlay_t *this) { } pthread_mutex_unlock (&this->events_mutex); + for( i = 0; i < MAX_SHOWING; i++ ) + this->showing[i].handle = -1; + for (i=0; i < MAX_OBJECTS; i++) { internal_video_overlay_free_handle(this, i); } - for( i = 0; i < MAX_SHOWING; i++ ) - this->showing[i].handle = -1; - this->showing_changed = 0; } @@ -362,6 +362,7 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) { /* this->objects[handle].overlay is about to be * overwritten by this event data. make sure we free it if needed. */ + remove_showing_handle(this,handle); internal_video_overlay_free_handle(this, handle); this->objects[handle].handle = handle; @@ -559,7 +560,7 @@ static void video_overlay_dispose(video_overlay_manager_t *this_gen) { free (this->events[i].event); } } - + for (i=0; i < MAX_OBJECTS; i++) internal_video_overlay_free_handle(this, i); diff --git a/src/xine-engine/video_overlay.h b/src/xine-engine/video_overlay.h index 04623a1dd..f236c29c6 100644 --- a/src/xine-engine/video_overlay.h +++ b/src/xine-engine/video_overlay.h @@ -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_overlay.h,v 1.18 2003/12/09 00:02:38 f1rmb Exp $ + * $Id: video_overlay.h,v 1.19 2004/12/08 18:18:24 miguelfreitas Exp $ * */ @@ -38,7 +38,7 @@ #define MAX_OBJECTS 50 #define MAX_EVENTS 50 -#define MAX_SHOWING 5 +#define MAX_SHOWING 16 #define OVERLAY_EVENT_NULL 0 #define OVERLAY_EVENT_SHOW 1 -- cgit v1.2.3