[PATCH v2 2/6] winegstreamer: Release wg_transform output sample when too small.
Rémi Bernon
wine at gitlab.winehq.org
Thu Jun 23 10:20:17 CDT 2022
From: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/winegstreamer/wg_transform.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/winegstreamer/wg_transform.c b/dlls/winegstreamer/wg_transform.c
index e05432f6ac7..b0048fad644 100644
--- a/dlls/winegstreamer/wg_transform.c
+++ b/dlls/winegstreamer/wg_transform.c
@@ -314,10 +314,15 @@ static struct wg_sample *transform_request_sample(gsize size, void *context)
GST_LOG("size %#zx, context %p", size, transform);
- sample = InterlockedExchangePointer((void **)&transform->output_wg_sample, NULL);
- if (!sample || sample->max_size < size)
+ if (!(sample = InterlockedExchangePointer((void **)&transform->output_wg_sample, NULL)))
return NULL;
+ if (sample->max_size < size)
+ {
+ InterlockedDecrement(&sample->refcount);
+ return NULL;
+ }
+
return sample;
}
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/302
More information about the wine-devel
mailing list