summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-02-18 12:45:22 +0200
committerSebastian Dröge <sebastian@centricular.com>2015-02-19 16:32:02 +0200
commiteaf3e6c6c4a0c6f9cc9f8d630efe7ad5bb6f85d7 (patch)
tree3d9f897d88b7e921c5f5a0913e2bfad7a6af4a26
parent894278ca571c69493021f162712fa339a5a8f151 (diff)
downloadgstreamer-plugins-bad-eaf3e6c6c4a0c6f9cc9f8d630efe7ad5bb6f85d7.tar.gz
d3dvideosink: Deactivate the fallback pool and unref the fallback buffer when resetting
Otherwise we will still have a reference to the surface left, which would prevent activating the sink again later. E.g. after we lost the device. Hopefully fixes https://bugzilla.gnome.org/show_bug.cgi?id=744615
-rw-r--r--sys/d3dvideosink/d3dhelpers.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/d3dvideosink/d3dhelpers.c b/sys/d3dvideosink/d3dhelpers.c
index 312b913a8..b131666b6 100644
--- a/sys/d3dvideosink/d3dhelpers.c
+++ b/sys/d3dvideosink/d3dhelpers.c
@@ -1342,6 +1342,10 @@ d3d_release_swap_chain (GstD3DVideoSink * sink)
goto end;
}
+ gst_buffer_replace (&sink->fallback_buffer, NULL);
+ if (sink->fallback_pool)
+ gst_buffer_pool_set_active (sink->fallback_pool, FALSE);
+
if (sink->d3d.swapchain) {
ref_count = IDirect3DSwapChain9_Release (sink->d3d.swapchain);
sink->d3d.swapchain = NULL;