Module: wine Branch: master Commit: 096da45036959e57ae3aa5b0de0c06f69c651788 URL: http://source.winehq.org/git/wine.git/?a=commit;h=096da45036959e57ae3aa5b0de...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Thu Nov 11 23:22:59 2010 +0100
winegstreamer: Fix deadlock when changing state.
Leaving the lock is legal and required here since gstreamer has its own locking in place. gst_pad_push could otherwise deadlock.
---
dlls/winegstreamer/gsttffilter.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/dlls/winegstreamer/gsttffilter.c b/dlls/winegstreamer/gsttffilter.c index a304cc1..912439e 100644 --- a/dlls/winegstreamer/gsttffilter.c +++ b/dlls/winegstreamer/gsttffilter.c @@ -267,7 +267,9 @@ static HRESULT WINAPI Gstreamer_transform_ProcessEnd(TransformFilter *iface) { GstTfImpl *This = (GstTfImpl*)iface; int ret;
+ LeaveCriticalSection(&This->tf.filter.csFilter); ret = gst_element_set_state(This->filter, GST_STATE_READY); + EnterCriticalSection(&This->tf.filter.csFilter); TRACE("Returned: %i\n", ret); return S_OK; }