winegstreamer: Don't force removed_decoded_pad() onto a Wine thread.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cfce5054ac
commit
2e41e3be57
|
@ -177,17 +177,6 @@ GstFlowReturn request_buffer_src_wrapper(GstPad *pad, GstObject *parent, guint64
|
||||||
return cbdata.u.getrange_data.ret;
|
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)
|
gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query)
|
||||||
{
|
{
|
||||||
struct cb_data cbdata = { QUERY_SINK };
|
struct cb_data cbdata = { QUERY_SINK };
|
||||||
|
|
|
@ -33,7 +33,6 @@ enum CB_TYPE {
|
||||||
EXISTING_NEW_PAD,
|
EXISTING_NEW_PAD,
|
||||||
ACTIVATE_MODE,
|
ACTIVATE_MODE,
|
||||||
REQUEST_BUFFER_SRC,
|
REQUEST_BUFFER_SRC,
|
||||||
REMOVED_DECODED_PAD,
|
|
||||||
QUERY_SINK,
|
QUERY_SINK,
|
||||||
GSTDEMUX_MAX,
|
GSTDEMUX_MAX,
|
||||||
BYTESTREAM_WRAPPER_PULL,
|
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;
|
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 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;
|
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;
|
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;
|
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;
|
GstFlowReturn bytestream_wrapper_pull_wrapper(GstPad *pad, GstObject *parent, guint64 ofs, guint len, GstBuffer **buf) DECLSPEC_HIDDEN;
|
||||||
|
|
|
@ -1765,7 +1765,7 @@ static BOOL decodebin_parser_init_gst(struct parser *filter)
|
||||||
gst_bin_add(GST_BIN(filter->container), element);
|
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-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, "autoplug-select", G_CALLBACK(autoplug_blacklist), filter);
|
||||||
g_signal_connect(element, "no-more-pads", G_CALLBACK(no_more_pads), 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);
|
data->ofs, data->len, data->buf);
|
||||||
break;
|
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:
|
case QUERY_SINK:
|
||||||
{
|
{
|
||||||
struct query_sink_data *data = &cbdata->u.query_sink_data;
|
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);
|
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-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);
|
g_signal_connect(element, "no-more-pads", G_CALLBACK(no_more_pads), filter);
|
||||||
|
|
||||||
filter->their_sink = gst_element_get_static_pad(element, "sink");
|
filter->their_sink = gst_element_get_static_pad(element, "sink");
|
||||||
|
|
Loading…
Reference in New Issue