Zebediah Figura : winegstreamer: Move the "flushing" field to struct wg_parser_stream.
Alexandre Julliard
julliard at winehq.org
Thu Feb 4 16:15:18 CST 2021
Module: wine
Branch: master
Commit: cb7fb161471f495f2d678f793a9f59f87291f9a3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=cb7fb161471f495f2d678f793a9f59f87291f9a3
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Wed Feb 3 17:41:40 2021 -0600
winegstreamer: Move the "flushing" field to struct wg_parser_stream.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winegstreamer/gstdemux.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 6aadeb29175..1332810e4ea 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -106,7 +106,7 @@ struct wg_parser_stream
pthread_cond_t event_cond, event_empty_cond;
struct wg_parser_event event;
- bool eos;
+ bool flushing, eos;
};
struct parser
@@ -149,7 +149,6 @@ struct parser_source
SourceSeeking seek;
CRITICAL_SECTION flushing_cs;
- bool flushing;
HANDLE thread;
};
@@ -725,9 +724,9 @@ static GstFlowReturn queue_stream_event(struct parser_source *pin, const struct
* is solved by flushing the upstream source. */
pthread_mutex_lock(&parser->mutex);
- while (!pin->flushing && stream->event.type != WG_PARSER_EVENT_NONE)
+ while (!stream->flushing && stream->event.type != WG_PARSER_EVENT_NONE)
pthread_cond_wait(&stream->event_empty_cond, &parser->mutex);
- if (pin->flushing)
+ if (stream->flushing)
{
pthread_mutex_unlock(&parser->mutex);
GST_DEBUG("Filter is flushing; discarding event.");
@@ -797,7 +796,7 @@ static gboolean event_sink(GstPad *pad, GstObject *parent, GstEvent *event)
{
pthread_mutex_lock(&parser->mutex);
- pin->flushing = true;
+ stream->flushing = true;
pthread_cond_signal(&stream->event_empty_cond);
switch (stream->event.type)
@@ -822,7 +821,7 @@ static gboolean event_sink(GstPad *pad, GstObject *parent, GstEvent *event)
if (pin->pin.pin.peer)
{
pthread_mutex_lock(&parser->mutex);
- pin->flushing = false;
+ stream->flushing = false;
pthread_mutex_unlock(&parser->mutex);
}
break;
@@ -2555,7 +2554,7 @@ static HRESULT GST_RemoveOutputPins(struct parser *This)
pthread_mutex_lock(&parser->mutex);
for (i = 0; i < This->source_count; ++i)
{
- This->sources[i]->flushing = true;
+ This->sources[i]->wg_stream->flushing = true;
pthread_cond_signal(&This->sources[i]->wg_stream->event_empty_cond);
}
pthread_mutex_unlock(&parser->mutex);
More information about the wine-cvs
mailing list