diff options
author | Carsten Kroll <car@ximidi.com> | 2011-08-22 14:19:06 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-02-07 15:34:41 +0100 |
commit | 56193e8f4960d870a41693d580ac390a3cbc776c (patch) | |
tree | 6c2456fbeedfa645ce3051d3fc38bb58d9ee3fb6 /sys/d3dvideosink/d3dvideosink.c | |
parent | 12407a13a0900bf0689bb380cc40b820a9fd5317 (diff) | |
download | gstreamer-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.c | 9 |
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); */ |