[0.11] gst-plugins-bad: d3dvideosink: redraw last buffer when new window handle has been set.

Wim Taymans wtay at kemper.freedesktop.org
Fri Feb 10 07:47:22 PST 2012


Module: gst-plugins-bad
Branch: 0.11
Commit: 56193e8f4960d870a41693d580ac390a3cbc776c
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=56193e8f4960d870a41693d580ac390a3cbc776c

Author: Carsten Kroll <car at ximidi.com>
Date:   Mon Aug 22 14:19:06 2011 +0200

d3dvideosink: redraw last buffer when new window handle has been set.

---

 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 15d6f4b..c864f17 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);                                            */



More information about the gstreamer-commits mailing list