diff options
author | Andy Wingo <wingo@pobox.com> | 2008-03-18 15:03:06 +0000 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-03-18 15:03:06 +0000 |
commit | f7edc0c690238a6cb03e67d08541471d8b391351 (patch) | |
tree | f7c91e9b1a50c0b0ece9f2c9a9b27d6fc148b81b /sys | |
parent | a6267f383e20e88ac28fd8686b86a13c4dd2429c (diff) |
sys/osxvideo/osxvideosink.m (gst_osx_video_sink_osxwindow_destroy)
Original commit message from CVS:
2008-03-18 Andy Wingo <wingo@pobox.com>
* sys/osxvideo/osxvideosink.m
(gst_osx_video_sink_osxwindow_destroy)
(gst_osx_video_sink_osxwindow_new): Actually set a lock on the
task, whoopdee.
(cocoa_event_loop): Pacify the taymans by upping the usleepage to
2 ms.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/osxvideo/osxvideosink.h | 1 | ||||
-rw-r--r-- | sys/osxvideo/osxvideosink.m | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h index bb16a425..a21ac6b1 100644 --- a/sys/osxvideo/osxvideosink.h +++ b/sys/osxvideo/osxvideosink.h @@ -77,6 +77,7 @@ struct _GstOSXVideoSink { gint fps_d; GstTask *event_task; + GStaticRecMutex event_task_lock; /* Unused */ gint pixel_width, pixel_height; diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index 5ed1541c..f14cbcab 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -125,7 +125,7 @@ cocoa_event_loop (GstOSXVideoSink * vsink) untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ]; if ( event == nil ) { - g_usleep (100); + g_usleep (2000); break; } else { switch ([event type]) { @@ -280,8 +280,10 @@ gst_osx_video_sink_osxwindow_new (GstOSXVideoSink * osxvideosink, gint width, [NSApp setDelegate:[[GstAppDelegate alloc] init]]; [NSApp setRunning]; + g_static_rec_mutex_init (&osxvideosink->event_task_lock); osxvideosink->event_task = gst_task_create ((GstTaskFunction)cocoa_event_loop, osxvideosink); + gst_task_set_lock (osxvideosink->event_task, &osxvideosink->event_task_lock); gst_task_start (osxvideosink->event_task); } else { GstStructure *s; @@ -327,6 +329,7 @@ gst_osx_video_sink_osxwindow_destroy (GstOSXVideoSink * osxvideosink, gst_task_join (osxvideosink->event_task); gst_object_unref (osxvideosink->event_task); osxvideosink->event_task = NULL; + g_static_rec_mutex_free (&osxvideosink->event_task_lock); } g_free (osxwindow); |