From a3cf0ab5f5cc1817b651bf9c377ca7b51821a5aa Mon Sep 17 00:00:00 2001 From: Andoni Morales Alastruey Date: Wed, 16 May 2012 21:52:45 +0200 Subject: [PATCH] osxvideosink: reset the embed property for backward compatilibity --- sys/osxvideo/osxvideosink.h | 1 + sys/osxvideo/osxvideosink.m | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h index 6c65ee9e21..73906caf49 100644 --- a/sys/osxvideo/osxvideosink.h +++ b/sys/osxvideo/osxvideosink.h @@ -77,6 +77,7 @@ struct _GstOSXVideoSink { NSView *superview; guint cocoa_timeout; gboolean keep_par; + gboolean embed; }; struct _GstOSXVideoSinkClass { diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index e7de9d4cbc..f61e7ae76a 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -268,14 +268,18 @@ gst_osx_video_sink_osxwindow_create (GstOSXVideoSink * osxvideosink, gint width, @selector(addToSuperview:), osxvideosink->superview, NO); } else { - /* the view wasn't added to a superview. It's possible that the - * application handled have-ns-view, stored our view internally and is - * going to add it to a superview later (webkit does that now). - */ - gst_osx_video_sink_start_cocoa_event_poller (osxvideosink); - gst_osx_video_sink_call_from_main_thread(osxvideosink->osxvideosinkobject, + if (osxvideosink->embed) { + /* the view wasn't added to a superview. It's possible that the + * application handled have-ns-view, stored our view internally and is + * going to add it to a superview later (webkit does that now). + */ + GST_INFO_OBJECT (osxvideosink, "no superview"); + } else { + gst_osx_video_sink_start_cocoa_event_poller (osxvideosink); + gst_osx_video_sink_call_from_main_thread(osxvideosink->osxvideosinkobject, @selector(createInternalWindow), nil, YES); - GST_INFO_OBJECT (osxvideosink, "no superview"); + GST_INFO_OBJECT (osxvideosink, "No superview, creating an internal window."); + } } } [osxwindow->gstview setNavigation: GST_NAVIGATION(osxvideosink)]; @@ -446,7 +450,7 @@ gst_osx_video_sink_set_property (GObject * object, guint prop_id, switch (prop_id) { case ARG_EMBED: - /* Ignore, just here for backwards compatibility */ + osxvideosink->embed = g_value_get_boolean(value); break; case ARG_FORCE_PAR: osxvideosink->keep_par = g_value_get_boolean(value); @@ -472,7 +476,7 @@ gst_osx_video_sink_get_property (GObject * object, guint prop_id, switch (prop_id) { case ARG_EMBED: - g_value_set_boolean (value, TRUE); + g_value_set_boolean (value, osxvideosink->embed); break; case ARG_FORCE_PAR: g_value_set_boolean (value, osxvideosink->keep_par);