Zebediah Figura : winegstreamer: Use the "streams" array in wg_parser code.

Alexandre Julliard julliard at winehq.org
Fri Feb 5 16:50:48 CST 2021


Module: wine
Branch: master
Commit: 45ebc26dcf18aab4c8b56cd4e1d790bf69b0dc55
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=45ebc26dcf18aab4c8b56cd4e1d790bf69b0dc55

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Thu Feb  4 20:53:40 2021 -0600

winegstreamer: Use the "streams" array in wg_parser code.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winegstreamer/gstdemux.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index a63e91c9a65..fdc10f72802 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -1228,14 +1228,15 @@ static DWORD CALLBACK read_thread(void *arg)
 static void removed_decoded_pad(GstElement *bin, GstPad *pad, gpointer user)
 {
     struct parser *filter = user;
+    struct wg_parser *parser = filter->wg_parser;
     unsigned int i;
     char *name;
 
     GST_LOG("filter %p, bin %p, pad %p.", filter, bin, pad);
 
-    for (i = 0; i < filter->source_count; ++i)
+    for (i = 0; i < parser->stream_count; ++i)
     {
-        struct wg_parser_stream *stream = filter->sources[i]->wg_stream;
+        struct wg_parser_stream *stream = parser->streams[i];
 
         if (stream->their_src == pad)
         {
@@ -1785,14 +1786,12 @@ static HRESULT parser_cleanup_stream(struct strmbase_filter *iface)
     parser->flushing = true;
     pthread_mutex_unlock(&parser->mutex);
 
-    for (i = 0; i < filter->source_count; ++i)
+    for (i = 0; i < parser->stream_count; ++i)
     {
-        struct parser_source *pin = filter->sources[i];
+        struct wg_parser_stream *stream = parser->streams[i];
 
-        if (!pin->pin.pin.peer)
-            continue;
-
-        pthread_cond_signal(&pin->wg_stream->event_cond);
+        if (stream->enabled)
+            pthread_cond_signal(&stream->event_cond);
     }
 
     for (i = 0; i < filter->source_count; ++i)
@@ -2573,10 +2572,10 @@ static HRESULT GST_RemoveOutputPins(struct parser *This)
 
     /* Unblock all of our streams. */
     pthread_mutex_lock(&parser->mutex);
-    for (i = 0; i < This->source_count; ++i)
+    for (i = 0; i < parser->stream_count; ++i)
     {
-        This->sources[i]->wg_stream->flushing = true;
-        pthread_cond_signal(&This->sources[i]->wg_stream->event_empty_cond);
+        parser->streams[i]->flushing = true;
+        pthread_cond_signal(&parser->streams[i]->event_empty_cond);
     }
     pthread_mutex_unlock(&parser->mutex);
 




More information about the wine-cvs mailing list