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.
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);
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;
}