From: Akihiro Sagawa Subject: [RFC PATCH 3/5] winegstreamer: Pass the AM_MEDIA_TYPE parameter to the handler. Message-Id: <20200621154026.8729.375B48EC@gmail.com> Date: Sun, 21 Jun 2020 15:41:00 +0900 Signed-off-by: Akihiro Sagawa --- dlls/winegstreamer/gstdemux.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index 0b79c2ca13..c5096c5d32 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -66,7 +66,7 @@ struct gstdemux HANDLE push_thread; - BOOL (*init_gst)(struct gstdemux *filter); + BOOL (*init_gst)(struct gstdemux *filter, const AM_MEDIA_TYPE *mt); HRESULT (*source_query_accept)(struct gstdemux_source *pin, const AM_MEDIA_TYPE *mt); HRESULT (*source_get_media_type)(struct gstdemux_source *pin, unsigned int index, AM_MEDIA_TYPE *mt); }; @@ -1289,7 +1289,7 @@ static void unknown_type(GstElement *bin, GstPad *pad, GstCaps *caps, gpointer u g_free(strcaps); } -static HRESULT GST_Connect(struct gstdemux *This, IPin *pConnectPin) +static HRESULT GST_Connect(struct gstdemux *This, IPin *pConnectPin, const AM_MEDIA_TYPE *mt) { LONGLONG avail; GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE( @@ -1318,7 +1318,7 @@ static HRESULT GST_Connect(struct gstdemux *This, IPin *pConnectPin) This->start = This->nextofs = This->nextpullofs = This->stop = 0; This->initial = TRUE; - if (!This->init_gst(This)) + if (!This->init_gst(This, mt)) return E_FAIL; This->initial = FALSE; @@ -1575,7 +1575,7 @@ static HRESULT gstdemux_sink_connect(struct strmbase_sink *iface, IPin *peer, co if (FAILED(hr = IPin_QueryInterface(peer, &IID_IAsyncReader, (void **)&filter->reader))) return hr; - if (FAILED(hr = GST_Connect(filter, peer))) + if (FAILED(hr = GST_Connect(filter, peer, pmt))) goto err; return S_OK; @@ -1602,7 +1602,7 @@ static const struct strmbase_sink_ops sink_ops = .sink_disconnect = gstdemux_sink_disconnect, }; -static BOOL gstdecoder_init_gst(struct gstdemux *filter) +static BOOL gstdecoder_init_gst(struct gstdemux *filter, const AM_MEDIA_TYPE *mt) { GstElement *element = gst_element_factory_make("decodebin", NULL); unsigned int i; @@ -2330,7 +2330,7 @@ static const struct strmbase_sink_ops wave_parser_sink_ops = .sink_disconnect = gstdemux_sink_disconnect, }; -static BOOL wave_parser_init_gst(struct gstdemux *filter) +static BOOL wave_parser_init_gst(struct gstdemux *filter, const AM_MEDIA_TYPE *mt) { static const WCHAR source_name[] = {'o','u','t','p','u','t',0}; struct gstdemux_source *pin; @@ -2443,7 +2443,7 @@ static const struct strmbase_sink_ops avi_splitter_sink_ops = .sink_disconnect = gstdemux_sink_disconnect, }; -static BOOL avi_splitter_init_gst(struct gstdemux *filter) +static BOOL avi_splitter_init_gst(struct gstdemux *filter, const AM_MEDIA_TYPE *mt) { GstElement *element = gst_element_factory_make("avidemux", NULL); unsigned int i; @@ -2586,7 +2586,7 @@ static const struct strmbase_sink_ops mpeg_splitter_sink_ops = .sink_disconnect = gstdemux_sink_disconnect, }; -static BOOL mpeg_splitter_init_gst(struct gstdemux *filter) +static BOOL mpeg_splitter_init_gst(struct gstdemux *filter, const AM_MEDIA_TYPE *mt) { static const WCHAR source_name[] = {'A','u','d','i','o',0}; struct gstdemux_source *pin;