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