osxvideosink: reset the embed property for backward compatilibity
authorAndoni Morales Alastruey <ylatuya@gmail.com>
Wed, 16 May 2012 19:52:45 +0000 (21:52 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 24 May 2012 12:35:42 +0000 (14:35 +0200)
sys/osxvideo/osxvideosink.h
sys/osxvideo/osxvideosink.m

index 6c65ee9e217797cca65aeeb54da15ac966616615..73906caf4924e8ed98d3a857a2952fdb93957c9e 100644 (file)
@@ -77,6 +77,7 @@ struct _GstOSXVideoSink {
   NSView *superview;
   guint cocoa_timeout;
   gboolean keep_par;
+  gboolean embed;
 };
 
 struct _GstOSXVideoSinkClass {
index e7de9d4cbc2babd0d34d169d923f027ac399208a..f61e7ae76a583b1a06841d302c806a3cbdb78ef0 100644 (file)
@@ -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);