osxvideosink: Really fix the build on 10.5
authorJosep Torra <n770galaxy@gmail.com>
Thu, 31 May 2012 08:26:27 +0000 (10:26 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 31 May 2012 08:26:27 +0000 (10:26 +0200)
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

index 5d32f5c..37b68c2 100644 (file)
 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