From 3fdd51952b8a7209d539060a0945586e49569ed7 Mon Sep 17 00:00:00 2001 From: Alessandro Decina Date: Tue, 11 May 2010 22:28:08 +0200 Subject: [PATCH] osxvideosink: allow switching views at runtime. --- sys/osxvideo/osxvideosink.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index 4187960..0a546fc 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -424,11 +424,20 @@ gst_osx_video_sink_set_xwindow_id (GstXOverlay * overlay, gulong window_id) if (osxvideosink->superview) { GST_INFO_OBJECT (osxvideosink, "old xwindow id %p", osxvideosink->superview); + if (osxvideosink->osxwindow) { + [osxvideosink->osxwindow->gstview + performSelectorOnMainThread:@selector(removeFromSuperview:) + withObject:(id)nil waitUntilDone:YES]; + } [osxvideosink->superview release]; } GST_INFO_OBJECT (osxvideosink, "set xwindow id 0x%lx", window_id); osxvideosink->superview = [((NSView *) window_id) retain]; + if (osxvideosink->osxwindow) { + [osxvideosink->osxwindow->gstview performSelectorOnMainThread:@selector(addToSuperview:) + withObject:osxvideosink->superview waitUntilDone:YES]; + } } static void -- 2.7.4