Module: wine Branch: master Commit: 490d8ed6635665a73c339fe9e906cdfa2726b4b1 URL: https://gitlab.winehq.org/wine/wine/-/commit/490d8ed6635665a73c339fe9e906cdf...
Author: Torge Matthies openglfreak@googlemail.com Date: Mon Jun 3 11:05:38 2024 +0200
winegstreamer: Fix race between wg_parser_stream_en/disable and GST_EVENT_FLUSH_START/STOP.
---
dlls/winegstreamer/wg_parser.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c index f9b76b12f8f..021aa66ae12 100644 --- a/dlls/winegstreamer/wg_parser.c +++ b/dlls/winegstreamer/wg_parser.c @@ -608,17 +608,14 @@ static gboolean sink_event_cb(GstPad *pad, GstObject *parent, GstEvent *event) case GST_EVENT_FLUSH_START: pthread_mutex_lock(&parser->mutex);
- if (stream->enabled) - { - stream->flushing = true; - pthread_cond_signal(&stream->event_empty_cond); + stream->flushing = true; + pthread_cond_signal(&stream->event_empty_cond);
- if (stream->buffer) - { - gst_buffer_unmap(stream->buffer, &stream->map_info); - gst_buffer_unref(stream->buffer); - stream->buffer = NULL; - } + if (stream->buffer) + { + gst_buffer_unmap(stream->buffer, &stream->map_info); + gst_buffer_unref(stream->buffer); + stream->buffer = NULL; }
pthread_mutex_unlock(&parser->mutex); @@ -636,8 +633,7 @@ static gboolean sink_event_cb(GstPad *pad, GstObject *parent, GstEvent *event) pthread_mutex_lock(&parser->mutex);
stream->eos = false; - if (stream->enabled) - stream->flushing = false; + stream->flushing = false;
pthread_mutex_unlock(&parser->mutex); break;