From 7f807270fadbafe9fb69b71de1ca3823529c56dd Mon Sep 17 00:00:00 2001 From: Matthieu Bouron Date: Mon, 28 Oct 2013 18:22:13 +0000 Subject: [PATCH] avfvideosrc: use a dedicated queue for AVFoundation calls Replace the main queue with a dedicated queue for AVFoundation calls so the execution on this queue won't block if the main queue is not running. --- sys/applemedia/avfvideosrc.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/applemedia/avfvideosrc.m b/sys/applemedia/avfvideosrc.m index f5153be207..9667f5e202 100644 --- a/sys/applemedia/avfvideosrc.m +++ b/sys/applemedia/avfvideosrc.m @@ -151,9 +151,10 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer deviceIndex = DEFAULT_DEVICE_INDEX; - mainQueue = dispatch_get_main_queue (); + mainQueue = + dispatch_queue_create ("org.freedesktop.gstreamer.avfvideosrc.main", NULL); workerQueue = - dispatch_queue_create ("org.freedesktop.gstreamer.avfvideosrc", NULL); + dispatch_queue_create ("org.freedesktop.gstreamer.avfvideosrc.output", NULL); gst_base_src_set_live (baseSrc, TRUE); gst_base_src_set_format (baseSrc, GST_FORMAT_TIME); @@ -164,6 +165,7 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer - (void)finalize { + dispatch_release (mainQueue); mainQueue = NULL; dispatch_release (workerQueue); workerQueue = NULL;