diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-02-18 12:45:22 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-02-19 16:32:02 +0200 |
commit | eaf3e6c6c4a0c6f9cc9f8d630efe7ad5bb6f85d7 (patch) | |
tree | 3d9f897d88b7e921c5f5a0913e2bfad7a6af4a26 | |
parent | 894278ca571c69493021f162712fa339a5a8f151 (diff) | |
download | gstreamer-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.c | 4 |
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; |