diff options
author | Andoni Morales Alastruey <ylatuya@gmail.com> | 2012-06-15 00:58:43 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-06-15 10:16:41 +0200 |
commit | b393f3576585c5bce64f7f824a548e0b6a6703bb (patch) | |
tree | bdaa22d563599289a514cc3c1b341c6c534aa08c | |
parent | 90aa81127ad03232927b1de1d58ce62b4a3d8b28 (diff) |
d3dvideosink: don't create new internal windows if we already have one
-rw-r--r-- | sys/d3dvideosink/d3dvideosink.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c index 7d01e42f0..c80ab301b 100644 --- a/sys/d3dvideosink/d3dvideosink.c +++ b/sys/d3dvideosink/d3dvideosink.c @@ -1362,9 +1362,11 @@ gst_d3dvideosink_prepare_window (GstD3DVideoSink * sink) } /* If the app supplied one, use it. Otherwise, go ahead - * and create (and use) our own window */ + * and create (and use) our own window, if we didn't create + * one before */ if (sink->window_handle) { - gst_d3dvideosink_set_window_for_renderer (sink); + if (!sink->is_new_window) + gst_d3dvideosink_set_window_for_renderer (sink); } else { gst_d3dvideosink_create_default_window (sink); } @@ -1402,7 +1404,9 @@ gst_d3dvideosink_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_d3dvideosink_remove_window_for_renderer (sink); + if (!sink->is_new_window) { + gst_d3dvideosink_remove_window_for_renderer (sink); + } break; case GST_STATE_CHANGE_READY_TO_NULL: gst_d3dvideosink_release_direct3d (sink); |