Zebediah Figura : winegstreamer: Don't force removed_decoded_pad() onto a Wine thread.

Alexandre Julliard julliard at winehq.org
Wed Jan 27 15:35:03 CST 2021


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Jan 26 17:45:30 2021 -0600

winegstreamer: Don't force removed_decoded_pad() onto a Wine thread.

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

---

 dlls/winegstreamer/gst_cbs.c  | 11 -----------
 dlls/winegstreamer/gst_cbs.h  |  2 --
 dlls/winegstreamer/gstdemux.c | 10 ++--------
 3 files changed, 2 insertions(+), 21 deletions(-)

diff --git a/dlls/winegstreamer/gst_cbs.c b/dlls/winegstreamer/gst_cbs.c
index 6c5877ce785..ee2452987d9 100644
--- a/dlls/winegstreamer/gst_cbs.c
+++ b/dlls/winegstreamer/gst_cbs.c
@@ -177,17 +177,6 @@ GstFlowReturn request_buffer_src_wrapper(GstPad *pad, GstObject *parent, guint64
     return cbdata.u.getrange_data.ret;
 }
 
-void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user)
-{
-    struct cb_data cbdata = { REMOVED_DECODED_PAD };
-
-    cbdata.u.pad_removed_data.element = bin;
-    cbdata.u.pad_removed_data.pad = pad;
-    cbdata.u.pad_removed_data.user = user;
-
-    call_cb(&cbdata);
-}
-
 gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query)
 {
     struct cb_data cbdata = { QUERY_SINK };
diff --git a/dlls/winegstreamer/gst_cbs.h b/dlls/winegstreamer/gst_cbs.h
index f063a0a2a7b..e80fcd41e4a 100644
--- a/dlls/winegstreamer/gst_cbs.h
+++ b/dlls/winegstreamer/gst_cbs.h
@@ -33,7 +33,6 @@ enum CB_TYPE {
     EXISTING_NEW_PAD,
     ACTIVATE_MODE,
     REQUEST_BUFFER_SRC,
-    REMOVED_DECODED_PAD,
     QUERY_SINK,
     GSTDEMUX_MAX,
     BYTESTREAM_WRAPPER_PULL,
@@ -119,7 +118,6 @@ void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLS
 gboolean activate_mode_wrapper(GstPad *pad, GstObject *parent, GstPadMode mode, gboolean activate) DECLSPEC_HIDDEN;
 GstFlowReturn request_buffer_src_wrapper(GstPad *pad, GstObject *parent, guint64 ofs, guint len, GstBuffer **buf) DECLSPEC_HIDDEN;
 GstFlowReturn got_data_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf) DECLSPEC_HIDDEN;
-void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
 void Gstreamer_transform_pad_added_wrapper(GstElement *filter, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
 gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) DECLSPEC_HIDDEN;
 GstFlowReturn bytestream_wrapper_pull_wrapper(GstPad *pad, GstObject *parent, guint64 ofs, guint len, GstBuffer **buf) DECLSPEC_HIDDEN;
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 5c13d5e06f3..b2d102b528e 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -1765,7 +1765,7 @@ static BOOL decodebin_parser_init_gst(struct parser *filter)
     gst_bin_add(GST_BIN(filter->container), element);
 
     g_signal_connect(element, "pad-added", G_CALLBACK(existing_new_pad_wrapper), filter);
-    g_signal_connect(element, "pad-removed", G_CALLBACK(removed_decoded_pad_wrapper), filter);
+    g_signal_connect(element, "pad-removed", G_CALLBACK(removed_decoded_pad), filter);
     g_signal_connect(element, "autoplug-select", G_CALLBACK(autoplug_blacklist), filter);
     g_signal_connect(element, "no-more-pads", G_CALLBACK(no_more_pads), filter);
 
@@ -2447,12 +2447,6 @@ void perform_cb_gstdemux(struct cb_data *cbdata)
                     data->ofs, data->len, data->buf);
             break;
         }
-    case REMOVED_DECODED_PAD:
-        {
-            struct pad_removed_data *data = &cbdata->u.pad_removed_data;
-            removed_decoded_pad(data->element, data->pad, data->user);
-            break;
-        }
     case QUERY_SINK:
         {
             struct query_sink_data *data = &cbdata->u.query_sink_data;
@@ -2617,7 +2611,7 @@ static BOOL avi_splitter_init_gst(struct parser *filter)
     gst_bin_add(GST_BIN(filter->container), element);
 
     g_signal_connect(element, "pad-added", G_CALLBACK(existing_new_pad_wrapper), filter);
-    g_signal_connect(element, "pad-removed", G_CALLBACK(removed_decoded_pad_wrapper), filter);
+    g_signal_connect(element, "pad-removed", G_CALLBACK(removed_decoded_pad), filter);
     g_signal_connect(element, "no-more-pads", G_CALLBACK(no_more_pads), filter);
 
     filter->their_sink = gst_element_get_static_pad(element, "sink");




More information about the wine-cvs mailing list