diff options
author | Andoni Morales Alastruey <ylatuya@gmail.com> | 2012-06-25 16:18:41 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-06-26 09:35:14 +0200 |
commit | 1d431e79774a084eee73d886b4d7af3104177996 (patch) | |
tree | 1213bf0d5f5f0d5f8829fb53926d1ea1fa5f307f | |
parent | eddfce945141caea01153e9f5583057ae2055bf9 (diff) |
d3dvideosink: release the offscreen surface before the d3d device
The offscreen surface keeps a reference on the d3d device, so if the
device is released first we don't see the reference count debug message
going to 0 as it should be.
-rw-r--r-- | sys/d3dvideosink/d3dvideosink.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c index 2fe672843..36c435c5d 100644 --- a/sys/d3dvideosink/d3dvideosink.c +++ b/sys/d3dvideosink/d3dvideosink.c @@ -2250,13 +2250,6 @@ error: static gboolean gst_d3dvideosink_release_d3d_device (GstD3DVideoSink * sink) { - if (sink->d3ddev) { - int ref_count; - ref_count = IDirect3DDevice9_Release (sink->d3ddev); - sink->d3ddev = NULL; - GST_DEBUG_OBJECT (sink, "Direct3D device released. Reference count: %d", - ref_count); - } if (sink->d3d_offscreen_surface) { int ref_count; ref_count = IDirect3DSurface9_Release (sink->d3d_offscreen_surface); @@ -2264,6 +2257,13 @@ gst_d3dvideosink_release_d3d_device (GstD3DVideoSink * sink) GST_DEBUG_OBJECT (sink, "Direct3D offscreen surface released. Reference count: %d", ref_count); } + if (sink->d3ddev) { + int ref_count; + ref_count = IDirect3DDevice9_Release (sink->d3ddev); + sink->d3ddev = NULL; + GST_DEBUG_OBJECT (sink, "Direct3D device released. Reference count: %d", + ref_count); + } return TRUE; } |