mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-11 02:24:13 +00:00
osxvideo: unifdef -DRUN_NS_APP_THREAD
This commit is contained in:
parent
6fe2115d77
commit
2bc631bcd0
3 changed files with 2 additions and 36 deletions
|
@ -3,9 +3,9 @@ plugin_LTLIBRARIES = libgstosxvideosink.la
|
|||
|
||||
libgstosxvideosink_la_SOURCES = osxvideosink.m cocoawindow.m
|
||||
libgstosxvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
|
||||
$(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD
|
||||
$(GST_PLUGINS_BASE_CFLAGS)
|
||||
libgstosxvideosink_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \
|
||||
$(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD
|
||||
$(GST_PLUGINS_BASE_CFLAGS)
|
||||
libgstosxvideosink_la_LIBADD = \
|
||||
$(GST_LIBS) \
|
||||
$(GST_BASE_LIBS) \
|
||||
|
|
|
@ -89,11 +89,7 @@ struct _GstOSXVideoSinkClass {
|
|||
GstVideoSinkClass parent_class;
|
||||
|
||||
GstOSXVideoSinkRunLoopState run_loop_state;
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
NSThread *ns_app_thread;
|
||||
#else
|
||||
guint cocoa_timeout;
|
||||
#endif
|
||||
};
|
||||
|
||||
GType gst_osx_video_sink_get_type(void);
|
||||
|
@ -132,11 +128,9 @@ GType gst_osx_video_sink_get_type(void);
|
|||
-(void) destroy;
|
||||
-(void) showFrame: (GstBufferObject*) buf;
|
||||
-(void) setView: (NSView*) view;
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
+ (BOOL) isMainThread;
|
||||
-(void) nsAppThread;
|
||||
-(void) checkMainRunLoop;
|
||||
#endif
|
||||
@end
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -48,11 +48,9 @@
|
|||
GST_DEBUG_CATEGORY (gst_debug_osx_video_sink);
|
||||
#define GST_CAT_DEFAULT gst_debug_osx_video_sink
|
||||
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
#include <pthread.h>
|
||||
extern void _CFRunLoopSetCurrent (CFRunLoopRef rl);
|
||||
extern pthread_t _CFMainPThread;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
@ -112,12 +110,8 @@ run_ns_app_loop (void) {
|
|||
NSAutoreleasePool *pool =[[NSAutoreleasePool alloc] init];
|
||||
NSDate *pollTime = nil;
|
||||
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
/* when running the loop in a thread we want to sleep as long as possible */
|
||||
pollTime = [NSDate distantFuture];
|
||||
#else
|
||||
pollTime = [NSDate distantPast];
|
||||
#endif
|
||||
|
||||
do {
|
||||
event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:pollTime
|
||||
|
@ -197,7 +191,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink )
|
|||
}
|
||||
|
||||
if (sink_class->ns_app_thread == NULL) {
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
/* run the main runloop in a separate thread */
|
||||
|
||||
/* override [NSThread isMainThread] with our own implementation so that we can
|
||||
|
@ -218,12 +211,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink )
|
|||
g_mutex_lock (&_run_loop_mutex);
|
||||
g_cond_wait (&_run_loop_cond, &_run_loop_mutex);
|
||||
g_mutex_unlock (&_run_loop_mutex);
|
||||
#else
|
||||
/* assume that there is a GMainLoop and iterate the main runloop from there
|
||||
*/
|
||||
sink_class->cocoa_timeout = g_timeout_add (10,
|
||||
(GSourceFunc) run_ns_app_loop, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
g_mutex_unlock (&_run_loop_check_mutex);
|
||||
|
@ -232,10 +219,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink )
|
|||
static void
|
||||
gst_osx_video_sink_stop_cocoa_loop (GstOSXVideoSink * osxvideosink)
|
||||
{
|
||||
#ifndef RUN_NS_APP_THREAD
|
||||
if (sink_class->cocoa_timeout)
|
||||
g_source_remove(sink_klass->cocoa_timeout);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* This function handles osx window creation */
|
||||
|
@ -811,13 +794,6 @@ gst_osx_video_sink_get_type (void)
|
|||
rect.size.width = (float) osxwindow->width;
|
||||
rect.size.height = (float) osxwindow->height;
|
||||
|
||||
#ifndef RUN_NS_APP_THREAD
|
||||
if (!osxvideosink->app_started) {
|
||||
[NSApplication sharedApplication];
|
||||
[NSApp finishLaunching];
|
||||
osxvideosink->app_started = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!GetCurrentProcess(&psn)) {
|
||||
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
|
||||
|
@ -838,13 +814,11 @@ gst_osx_video_sink_get_type (void)
|
|||
|
||||
}
|
||||
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
+ (BOOL) isMainThread
|
||||
{
|
||||
/* FIXME: ideally we should return YES only for ->ns_app_thread here */
|
||||
return YES;
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void) setView: (NSView*)view
|
||||
{
|
||||
|
@ -973,7 +947,6 @@ no_texture_buffer:
|
|||
[pool release];
|
||||
}
|
||||
|
||||
#ifdef RUN_NS_APP_THREAD
|
||||
-(void) nsAppThread
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
|
@ -1003,7 +976,6 @@ no_texture_buffer:
|
|||
|
||||
[pool release];
|
||||
}
|
||||
#endif
|
||||
|
||||
-(void) checkMainRunLoop
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue