Rebase against c1824d578ac514d29e79a5a00d6759f11dbe4813.

This commit is contained in:
Alistair Leslie-Hughes
2021-01-27 11:13:11 +11:00
parent fd3372e71c
commit 73480ec459
6 changed files with 80 additions and 229 deletions

View File

@@ -1,4 +1,4 @@
From 389c087267b8d9d3892c68b52ffa965df38730db Mon Sep 17 00:00:00 2001
From ca61f3487605168b0f68f9c3d64bec15f5ecef1f Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Mon, 16 Mar 2020 12:09:39 -0500
Subject: [PATCH] winegstreamer: Implement decoder MFT on gstreamer.
@@ -28,7 +28,7 @@ index 4f6b428f067..81c670c17e4 100644
pin.c \
qualitycontrol.c \
diff --git a/dlls/winegstreamer/gst_cbs.c b/dlls/winegstreamer/gst_cbs.c
index b9effe73a5b..4afefe91aa8 100644
index 6c5877ce785..cf410b8934d 100644
--- a/dlls/winegstreamer/gst_cbs.c
+++ b/dlls/winegstreamer/gst_cbs.c
@@ -51,6 +51,8 @@ static void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user)
@@ -40,7 +40,7 @@ index b9effe73a5b..4afefe91aa8 100644
pthread_mutex_lock(&cbdata->lock);
cbdata->finished = 1;
@@ -363,3 +365,66 @@ void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user)
@@ -301,3 +303,66 @@ void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user)
call_cb(&cbdata);
}
@@ -108,10 +108,10 @@ index b9effe73a5b..4afefe91aa8 100644
+ return cbdata.u.new_sample_data.ret;
+}
diff --git a/dlls/winegstreamer/gst_cbs.h b/dlls/winegstreamer/gst_cbs.h
index 0e262c12db8..98dff43ba9b 100644
index f063a0a2a7b..7737ae589d2 100644
--- a/dlls/winegstreamer/gst_cbs.h
+++ b/dlls/winegstreamer/gst_cbs.h
@@ -50,6 +50,12 @@ enum CB_TYPE {
@@ -45,6 +45,12 @@ enum CB_TYPE {
MF_SRC_STREAM_REMOVED,
MF_SRC_NO_MORE_PADS,
MEDIA_SOURCE_MAX,
@@ -124,7 +124,7 @@ index 0e262c12db8..98dff43ba9b 100644
};
struct cb_data {
@@ -120,6 +126,17 @@ struct cb_data {
@@ -103,6 +109,17 @@ struct cb_data {
GstQuery *query;
gboolean ret;
} query_sink_data;
@@ -142,15 +142,15 @@ index 0e262c12db8..98dff43ba9b 100644
} u;
int finished;
@@ -131,6 +148,7 @@ struct cb_data {
@@ -114,6 +131,7 @@ struct cb_data {
void mark_wine_thread(void) DECLSPEC_HIDDEN;
void perform_cb_gstdemux(struct cb_data *data) DECLSPEC_HIDDEN;
void perform_cb_media_source(struct cb_data *data) DECLSPEC_HIDDEN;
+void perform_cb_mf_decode(struct cb_data *data) DECLSPEC_HIDDEN;
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
gboolean query_function_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) DECLSPEC_HIDDEN;
@@ -152,5 +170,10 @@ GstBusSyncReply mf_src_bus_watch_wrapper(GstBus *bus, GstMessage *message, gpoin
gboolean activate_mode_wrapper(GstPad *pad, GstObject *parent, GstPadMode mode, gboolean activate) DECLSPEC_HIDDEN;
@@ -130,5 +148,10 @@ GstBusSyncReply mf_src_bus_watch_wrapper(GstBus *bus, GstMessage *message, gpoin
void mf_src_stream_added_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void mf_src_stream_removed_wrapper(GstElement *element, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user) DECLSPEC_HIDDEN;