d3d11window: Clear old swapchain per prepare
authorSeungha Yang <seungha.yang@navercorp.com>
Sun, 8 Dec 2019 07:39:16 +0000 (16:39 +0900)
committerSeungha Yang <seungha.yang@navercorp.com>
Tue, 10 Dec 2019 01:58:28 +0000 (10:58 +0900)
_prepare() might be called multiple times for given window, so clear
old swapchain if any.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1138

sys/d3d11/gstd3d11window.c

index 9823972..ab83f0a 100644 (file)
@@ -1089,6 +1089,11 @@ gst_d3d11_window_prepare (GstD3D11Window * window, guint width, guint height,
   }
 #endif
 
+  if (window->swap_chain) {
+    gst_d3d11_device_thread_add (window->device,
+        (GstD3D11DeviceThreadFunc) gst_d3d11_window_release_resources, window);
+  }
+
   window->aspect_ratio_n = aspect_ratio_n;
   window->aspect_ratio_d = aspect_ratio_d;