From 06862d7ff5114c59098c81364090b9221095a997 Mon Sep 17 00:00:00 2001 From: Aaron Boxer Date: Sat, 7 Dec 2019 00:01:47 -0600 Subject: [PATCH] d3dvideosink: check ref count and device before resetting display --- sys/d3dvideosink/d3dhelpers.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/d3dvideosink/d3dhelpers.c b/sys/d3dvideosink/d3dhelpers.c index 138de1b..75f8cd0 100644 --- a/sys/d3dvideosink/d3dhelpers.c +++ b/sys/d3dvideosink/d3dhelpers.c @@ -2698,7 +2698,9 @@ d3d_class_reset_display_device (GstD3DVideoSinkClass * klass) g_return_if_fail (klass != NULL); LOCK_CLASS (NULL, klass); - hr = IDirect3DDevice9_Reset (klass->d3d.device.d3d_device, + CHECK_REF_COUNT (klass, NULL, end); + CHECK_D3D_DEVICE (klass, NULL, end) + hr = IDirect3DDevice9_Reset (klass->d3d.device.d3d_device, &klass->d3d.device.present_params); ERROR_CHECK_HR (hr) { CASE_HR_ERR (D3DERR_DEVICELOST); @@ -2715,7 +2717,7 @@ d3d_class_reset_display_device (GstD3DVideoSinkClass * klass) KillTimer (klass->d3d.hidden_window, IDT_DEVICE_RESET_TIMER); g_list_foreach (klass->d3d.sink_list, (GFunc) d3d_notify_device_reset, NULL); -end:; +end: UNLOCK_CLASS (NULL, klass); } -- 2.7.4