sys/osxvideo/osxvideosink.*: Remove the event-loop-in-separate-thread modifications...
authorEdward Hervey <bilboed@bilboed.com>
Thu, 17 May 2007 10:59:00 +0000 (10:59 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Thu, 17 May 2007 10:59:00 +0000 (10:59 +0000)
Original commit message from CVS:
* sys/osxvideo/osxvideosink.h:
* sys/osxvideo/osxvideosink.m:
Remove the event-loop-in-separate-thread modifications, because MacOSX
is $#@(*%$# ! For those wondering, the event handling needs to be done
in the main thread after all..

sys/osxvideo/osxvideosink.h
sys/osxvideo/osxvideosink.m

index 4aef99f..d7fba96 100644 (file)
@@ -84,8 +84,6 @@ struct _GstOSXVideoSink {
   gboolean embed;
   gboolean fullscreen; 
   gboolean sw_scaling_failed;
-  GstTask *event_loop;
-  GStaticRecMutex loop_lock;
 };
 
 struct _GstOSXVideoSinkClass {
index 9fb9d89..45dda33 100644 (file)
@@ -259,10 +259,7 @@ gst_osx_video_sink_osxwindow_new (GstOSXVideoSink * osxvideosink, gint width,
 
     [NSApp setRunning];
     // insert event dispatch in the glib main loop
-    g_static_rec_mutex_init (&osxvideosink->loop_lock);
-    osxvideosink->event_loop = gst_task_create ((GstTaskFunction) cocoa_event_loop, osxvideosink);
-    gst_task_set_lock (osxvideosink->event_loop, &osxvideosink->loop_lock);
-    gst_task_start (osxvideosink->event_loop);
+    g_idle_add ((GSourceFunc) cocoa_event_loop, osxvideosink);
   } else {
     GstStructure *s;
     GstMessage *msg;
@@ -302,8 +299,6 @@ gst_osx_video_sink_osxwindow_destroy (GstOSXVideoSink * osxvideosink,
   g_return_if_fail (GST_IS_OSX_VIDEO_SINK (osxvideosink));
 
   [osxwindow->pool release];
-  if (osxvideosink->event_loop)
-    gst_task_stop (osxvideosink->event_loop);
 
   g_free (osxwindow);
 }