From bb8cdf4cc580e481f60580142481b0983d30f40b Mon Sep 17 00:00:00 2001 From: Josep Torra Date: Thu, 31 May 2012 10:26:27 +0200 Subject: [PATCH] osxvideosink: Really fix the build on 10.5 The API that we use to run the Cocoa loop in another thread does not exist in 10.5 or earlier. --- sys/osxvideo/osxvideosink.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h index 5d32f5c..37b68c2 100644 --- a/sys/osxvideo/osxvideosink.h +++ b/sys/osxvideo/osxvideosink.h @@ -40,6 +40,14 @@ GST_DEBUG_CATEGORY_EXTERN (gst_debug_osx_video_sink); #define GST_CAT_DEFAULT gst_debug_osx_video_sink +/* The hack doesn't work on leopard, the _CFMainPThread symbol + * is doesn't exist in the CoreFoundation library */ +#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_5 +#ifdef RUN_NS_APP_THREAD +#undef RUN_NS_APP_THREAD +#endif +#endif + G_BEGIN_DECLS #define GST_TYPE_OSX_VIDEO_SINK \ @@ -75,8 +83,8 @@ struct _GstOSXVideoSink { GstOSXWindow *osxwindow; void *osxvideosinkobject; NSView *superview; -#ifdef RUN_NS_APP_THREAD NSThread *ns_app_thread; +#ifdef RUN_NS_APP_THREAD GMutex *loop_thread_lock; GCond *loop_thread_cond; #else @@ -129,15 +137,13 @@ GType gst_osx_video_sink_get_type(void); GstOSXVideoSink *osxvideosink; } -#ifdef RUN_NS_APP_THREAD -+ (BOOL) isMainThread; -#endif -(id) initWithSink: (GstOSXVideoSink *) sink; -(void) createInternalWindow; -(void) resize; -(void) destroy; -(void) showFrame: (GstBufferObject*) buf; #ifdef RUN_NS_APP_THREAD ++ (BOOL) isMainThread; -(void) nsAppThread; #endif @end -- 2.7.4