summaryrefslogtreecommitdiff
path: root/sys/d3dvideosink/d3dvideosink.c
diff options
context:
space:
mode:
authorCarsten Kroll <car@ximidi.com>2011-08-22 14:19:06 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-02-07 15:34:41 +0100
commit56193e8f4960d870a41693d580ac390a3cbc776c (patch)
tree6c2456fbeedfa645ce3051d3fc38bb58d9ee3fb6 /sys/d3dvideosink/d3dvideosink.c
parent12407a13a0900bf0689bb380cc40b820a9fd5317 (diff)
downloadgstreamer-plugins-bad-56193e8f4960d870a41693d580ac390a3cbc776c.tar.gz
d3dvideosink: redraw last buffer when new window handle has been set.
Diffstat (limited to 'sys/d3dvideosink/d3dvideosink.c')
-rw-r--r--sys/d3dvideosink/d3dvideosink.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c
index 15d6f4b3d..c864f178f 100644
--- a/sys/d3dvideosink/d3dvideosink.c
+++ b/sys/d3dvideosink/d3dvideosink.c
@@ -187,7 +187,7 @@ static void gst_d3dvideosink_log_warning (const gchar * file,
const gchar * function, gint line, const gchar * format, va_list args);
static void gst_d3dvideosink_log_error (const gchar * file,
const gchar * function, gint line, const gchar * format, va_list args);
-
+static void gst_d3dvideosink_set_window_for_renderer (GstD3DVideoSink * sink);
static DirectXInitParams directx_init_params = {
gst_d3dvideosink_log_debug, gst_d3dvideosink_log_warning,
gst_d3dvideosink_log_error
@@ -1057,7 +1057,8 @@ gst_d3dvideosink_set_window_handle (GstXOverlay * overlay, guintptr window_id)
/* Save our window id */
sink->window_handle = hWnd;
-
+ gst_d3dvideosink_set_window_for_renderer(sink);
+
if (init_swap_chain)
gst_d3dvideosink_initialize_swap_chain (sink);
}
@@ -1066,7 +1067,9 @@ gst_d3dvideosink_set_window_handle (GstXOverlay * overlay, guintptr window_id)
GST_DEBUG ("Direct3D window id successfully changed for sink %p to %p", sink,
hWnd);
GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink);
- GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return;
+ GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK
+ gst_d3dvideosink_update(sink);
+ return;
/*error:*/
/* GST_DEBUG("Error attempting to change the window id for sink %d to %d", sink, hWnd); */
/* GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); */