Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/strmbase/pin.c | 25 +++++++++++++++++++++++++ include/wine/strmbase.h | 2 ++ 2 files changed, 27 insertions(+)
diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index 2cc6ef5259d..d85d767bf52 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -157,6 +157,31 @@ HRESULT strmbase_pin_get_media_type(struct strmbase_pin *iface, unsigned int ind return VFW_S_NO_MORE_ITEMS; }
+HRESULT WINAPI BasePinImpl_QueryInterface(IPin *iface) +{ + struct strmbase_pin *pin = impl_from_IPin(iface); + HRESULT hr; + + TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out); + + *out = NULL; + + if (pin->pFuncsTable->pin_query_interface + && SUCCEEDED(hr = pin->pFuncsTable->pin_query_interface(filter, iid, out))) + return hr; + + if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IPin)) + *out = iface; + else + { + WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid)); + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + ULONG WINAPI BasePinImpl_AddRef(IPin *iface) { struct strmbase_pin *pin = impl_from_IPin(iface); diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h index 65ba180caa7..5ee13c8892e 100644 --- a/include/wine/strmbase.h +++ b/include/wine/strmbase.h @@ -47,6 +47,7 @@ typedef struct BasePinFuncTable { HRESULT (*pin_query_accept)(struct strmbase_pin *pin, const AM_MEDIA_TYPE *mt); /* Required for EnumMediaTypes(). */ HRESULT (*pin_get_media_type)(struct strmbase_pin *pin, unsigned int index, AM_MEDIA_TYPE *mt); + HRESULT (*pin_query_interface)(struct strmbase_pin *pin, REFIID iid, void **out); } BasePinFuncTable;
struct strmbase_source @@ -97,6 +98,7 @@ typedef struct BaseInputPinFuncTable { /* Base Pin */ HRESULT strmbase_pin_get_media_type(struct strmbase_pin *pin, unsigned int index, AM_MEDIA_TYPE *mt); LONG WINAPI BasePinImpl_GetMediaTypeVersion(struct strmbase_pin *pin); +HRESULT WINAPI BasePinImpl_QueryInterface(IPin *iface, REFIID iid, void **out); ULONG WINAPI BasePinImpl_AddRef(IPin *iface); ULONG WINAPI BasePinImpl_Release(IPin *iface); HRESULT WINAPI BasePinImpl_Disconnect(IPin * iface);
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qedit/tests/nullrenderer.c | 2 +- dlls/quartz/tests/dsoundrender.c | 2 +- dlls/quartz/tests/videorenderer.c | 2 +- dlls/quartz/tests/vmr7.c | 6 ++-- dlls/quartz/tests/vmr9.c | 6 ++-- dlls/strmbase/pin.c | 4 +-- dlls/strmbase/renderer.c | 16 ++++++++- dlls/strmbase/transform.c | 55 ++++++++++++++++++------------- 8 files changed, 58 insertions(+), 35 deletions(-)
diff --git a/dlls/qedit/tests/nullrenderer.c b/dlls/qedit/tests/nullrenderer.c index 45a0af16184..ab4cf54fa58 100644 --- a/dlls/qedit/tests/nullrenderer.c +++ b/dlls/qedit/tests/nullrenderer.c @@ -88,7 +88,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin); ref = IBaseFilter_Release(filter); diff --git a/dlls/quartz/tests/dsoundrender.c b/dlls/quartz/tests/dsoundrender.c index ecf4a46facd..8b7a1a52364 100644 --- a/dlls/quartz/tests/dsoundrender.c +++ b/dlls/quartz/tests/dsoundrender.c @@ -161,7 +161,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IAsyncReader, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin); IBaseFilter_Release(filter); diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index 9e5c8eb281f..985154f238b 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -93,7 +93,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IAsyncReader, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin); IBaseFilter_Release(filter); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 81b42243b88..f9ca8930f30 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -239,7 +239,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
@@ -269,7 +269,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
@@ -298,7 +298,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index 8d07522ab06..f4a3017d3f7 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -232,7 +232,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
@@ -262,7 +262,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
@@ -291,7 +291,7 @@ static void test_interfaces(void)
check_interface(pin, &IID_IKsPropertySet, FALSE); check_interface(pin, &IID_IMediaPosition, FALSE); - todo_wine check_interface(pin, &IID_IMediaSeeking, FALSE); + check_interface(pin, &IID_IMediaSeeking, FALSE);
IPin_Release(pin);
diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index d85d767bf52..1dbfee07a6c 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -157,7 +157,7 @@ HRESULT strmbase_pin_get_media_type(struct strmbase_pin *iface, unsigned int ind return VFW_S_NO_MORE_ITEMS; }
-HRESULT WINAPI BasePinImpl_QueryInterface(IPin *iface) +HRESULT WINAPI BasePinImpl_QueryInterface(IPin *iface, REFIID iid, void **out) { struct strmbase_pin *pin = impl_from_IPin(iface); HRESULT hr; @@ -167,7 +167,7 @@ HRESULT WINAPI BasePinImpl_QueryInterface(IPin *iface) *out = NULL;
if (pin->pFuncsTable->pin_query_interface - && SUCCEEDED(hr = pin->pFuncsTable->pin_query_interface(filter, iid, out))) + && SUCCEEDED(hr = pin->pFuncsTable->pin_query_interface(pin, iid, out))) return hr;
if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IPin)) diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c index c8a6249227c..5634ab1905b 100644 --- a/dlls/strmbase/renderer.c +++ b/dlls/strmbase/renderer.c @@ -147,7 +147,7 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndFlush(IPin * iface)
static const IPinVtbl BaseRenderer_InputPin_Vtbl = { - BaseInputPinImpl_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseInputPinImpl_Connect, @@ -217,6 +217,19 @@ static HRESULT sink_query_accept(struct strmbase_pin *pin, const AM_MEDIA_TYPE * return filter->pFuncsTable->pfnCheckMediaType(filter, mt); }
+static HRESULT sink_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + BaseRenderer *filter = impl_from_IPin(&iface->IPin_iface); + + if (IsEqualGUID(iid, &IID_IMemInputPin)) + *out = &filter->sink.IMemInputPin_iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static HRESULT WINAPI BaseRenderer_Receive(BaseInputPin *pin, IMediaSample *sample) { BaseRenderer *filter = impl_from_IPin(&pin->pin.IPin_iface); @@ -226,6 +239,7 @@ static HRESULT WINAPI BaseRenderer_Receive(BaseInputPin *pin, IMediaSample *samp static const BaseInputPinFuncTable input_BaseInputFuncTable = { .base.pin_query_accept = sink_query_accept, + .base.pin_query_interface = sink_query_interface, .base.pin_get_media_type = strmbase_pin_get_media_type, .pfnReceive = BaseRenderer_Receive, }; diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c index fa041b66bd2..04acf63c9a5 100644 --- a/dlls/strmbase/transform.c +++ b/dlls/strmbase/transform.c @@ -161,17 +161,47 @@ static const struct strmbase_filter_ops filter_ops = .filter_destroy = transform_destroy, };
+static HRESULT sink_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + TransformFilter *filter = impl_from_sink_IPin(&iface->IPin_iface); + + if (IsEqualGUID(iid, &IID_IMemInputPin)) + *out = &filter->sink.IMemInputPin_iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static const BaseInputPinFuncTable tf_input_BaseInputFuncTable = { .base.pin_query_accept = sink_query_accept, .base.pin_get_media_type = strmbase_pin_get_media_type, + .base.pin_query_interface = sink_query_interface, .pfnReceive = TransformFilter_Input_Receive, };
+static HRESULT source_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + TransformFilter *filter = impl_from_source_IPin(&iface->IPin_iface); + + if (IsEqualGUID(iid, &IID_IQualityControl)) + *out = &filter->qcimpl->IQualityControl_iface; + else if (IsEqualGUID(iid, &IID_IMediaSeeking)) + return IUnknown_QueryInterface(filter->seekthru_unk, iid, out); + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static const struct strmbase_source_ops source_ops = { .base.pin_query_accept = source_query_accept, .base.pin_get_media_type = source_get_media_type, + .base.pin_query_interface = source_query_interface, .pfnAttemptConnection = BaseOutputPinImpl_AttemptConnection, .pfnDecideBufferSize = TransformFilter_Output_DecideBufferSize, .pfnDecideAllocator = BaseOutputPinImpl_DecideAllocator, @@ -439,7 +469,7 @@ static HRESULT WINAPI TransformFilter_InputPin_NewSegment(IPin * iface, REFERENC
static const IPinVtbl TransformFilter_InputPin_Vtbl = { - BaseInputPinImpl_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseInputPinImpl_Connect, @@ -459,30 +489,9 @@ static const IPinVtbl TransformFilter_InputPin_Vtbl = TransformFilter_InputPin_NewSegment };
-static HRESULT WINAPI transform_source_QueryInterface(IPin *iface, REFIID iid, void **out) -{ - TransformFilter *filter = impl_from_source_IPin(iface); - - if (IsEqualGUID(iid, &IID_IUnknown) || IsEqualGUID(iid, &IID_IPin)) - *out = iface; - else if (IsEqualGUID(iid, &IID_IQualityControl)) - *out = &filter->qcimpl->IQualityControl_iface; - else if (IsEqualGUID(iid, &IID_IMediaSeeking)) - return IUnknown_QueryInterface(filter->seekthru_unk, iid, out); - else - { - WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid)); - *out = NULL; - return E_NOINTERFACE; - } - - IUnknown_AddRef((IUnknown *)*out); - return S_OK; -} - static const IPinVtbl TransformFilter_OutputPin_Vtbl = { - transform_source_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=56953
Your paranoid android.
=== build (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 Task: Patch failed to apply
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/filesource.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 160b814738c..0c58ecaa2a9 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -560,11 +560,6 @@ static const IFileSourceFilterVtbl FileSource_Vtbl = FileSource_GetCurFile };
-static inline AsyncReader *impl_from_IPin(IPin *iface) -{ - return CONTAINING_RECORD(iface, AsyncReader, source.pin.IPin_iface); -} - static inline AsyncReader *impl_from_strmbase_pin(struct strmbase_pin *iface) { return CONTAINING_RECORD(iface, AsyncReader, source.pin); @@ -605,24 +600,14 @@ static HRESULT source_get_media_type(struct strmbase_pin *iface, unsigned int in return S_OK; }
-/* overridden pin functions */ - -static HRESULT WINAPI FileAsyncReaderPin_QueryInterface(IPin *iface, REFIID iid, void **out) +static HRESULT source_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) { - AsyncReader *filter = impl_from_IPin(iface); - - TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out); + AsyncReader *filter = impl_from_strmbase_pin(iface);
- if (IsEqualGUID(iid, &IID_IUnknown) || IsEqualGUID(iid, &IID_IPin)) - *out = &filter->source.pin.IPin_iface; - else if (IsEqualIID(iid, &IID_IAsyncReader)) + if (IsEqualGUID(iid, &IID_IAsyncReader)) *out = &filter->IAsyncReader_iface; else - { - WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid)); - *out = NULL; return E_NOINTERFACE; - }
IUnknown_AddRef((IUnknown *)*out); return S_OK; @@ -630,7 +615,7 @@ static HRESULT WINAPI FileAsyncReaderPin_QueryInterface(IPin *iface, REFIID iid,
static const IPinVtbl FileAsyncReaderPin_Vtbl = { - FileAsyncReaderPin_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect, @@ -703,6 +688,7 @@ static const struct strmbase_source_ops source_ops = { .base.pin_query_accept = source_query_accept, .base.pin_get_media_type = source_get_media_type, + .base.pin_query_interface = source_query_interface, .pfnAttemptConnection = FileAsyncReaderPin_AttemptConnection, .pfnDecideBufferSize = FileAsyncReaderPin_DecideBufferSize, .pfnDecideAllocator = BaseOutputPinImpl_DecideAllocator,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=56954
Your paranoid android.
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 Task: Patch failed to apply
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/avico.c | 28 ++++++++++-------- dlls/qcap/smartteefilter.c | 20 +++++++++++-- dlls/qcap/vfwcapture.c | 47 +++++++++++------------------- dlls/strmbase/pin.c | 59 -------------------------------------- include/wine/strmbase.h | 2 -- 5 files changed, 50 insertions(+), 106 deletions(-)
diff --git a/dlls/qcap/avico.c b/dlls/qcap/avico.c index 33d1c7fab2e..89e8dda08f8 100644 --- a/dlls/qcap/avico.c +++ b/dlls/qcap/avico.c @@ -318,11 +318,6 @@ static inline AVICompressor *impl_from_IPin(IPin *iface) return impl_from_strmbase_filter(CONTAINING_RECORD(iface, struct strmbase_pin, IPin_iface)->filter); }
-static HRESULT WINAPI AVICompressorIn_QueryInterface(IPin *iface, REFIID riid, void **ppv) -{ - return BaseInputPinImpl_QueryInterface(iface, riid, ppv); -} - static HRESULT WINAPI AVICompressorIn_ReceiveConnection(IPin *iface, IPin *pConnector, const AM_MEDIA_TYPE *pmt) { @@ -359,7 +354,7 @@ static HRESULT WINAPI AVICompressorIn_Disconnect(IPin *iface) }
static const IPinVtbl AVICompressorInputPinVtbl = { - AVICompressorIn_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseInputPinImpl_Connect, @@ -406,6 +401,19 @@ static HRESULT sink_query_accept(struct strmbase_pin *base, const AM_MEDIA_TYPE return res == ICERR_OK ? S_OK : S_FALSE; }
+static HRESULT sink_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + AVICompressor *filter = impl_from_strmbase_pin(iface); + + if (IsEqualGUID(iid, &IID_IMemInputPin)) + *out = &filter->sink.IMemInputPin_iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static HRESULT WINAPI AVICompressorIn_Receive(BaseInputPin *base, IMediaSample *pSample) { AVICompressor *This = impl_from_strmbase_pin(&base->pin); @@ -497,16 +505,12 @@ static const BaseInputPinFuncTable AVICompressorBaseInputPinVtbl = { .base.pin_query_accept = sink_query_accept, .base.pin_get_media_type = strmbase_pin_get_media_type, + .base.pin_query_interface = sink_query_interface, .pfnReceive = AVICompressorIn_Receive, };
-static HRESULT WINAPI AVICompressorOut_QueryInterface(IPin *iface, REFIID riid, void **ppv) -{ - return BaseInputPinImpl_QueryInterface(iface, riid, ppv); -} - static const IPinVtbl AVICompressorOutputPinVtbl = { - AVICompressorOut_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect, diff --git a/dlls/qcap/smartteefilter.c b/dlls/qcap/smartteefilter.c index e7ff5f9b345..b2e5496b7dd 100644 --- a/dlls/qcap/smartteefilter.c +++ b/dlls/qcap/smartteefilter.c @@ -142,7 +142,7 @@ static const struct strmbase_filter_ops filter_ops = };
static const IPinVtbl SmartTeeFilterInputVtbl = { - BaseInputPinImpl_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseInputPinImpl_Connect, @@ -194,6 +194,19 @@ static HRESULT sink_get_media_type(struct strmbase_pin *base, return hr; }
+static HRESULT sink_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + SmartTeeFilter *filter = impl_from_strmbase_pin(iface); + + if (IsEqualGUID(iid, &IID_IMemInputPin)) + *out = &filter->sink.IMemInputPin_iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static HRESULT copy_sample(IMediaSample *inputSample, IMemAllocator *allocator, IMediaSample **pOutputSample) { REFERENCE_TIME startTime, endTime; @@ -319,11 +332,12 @@ static const BaseInputPinFuncTable SmartTeeFilterInputFuncs = { .base.pin_query_accept = sink_query_accept, .base.pin_get_media_type = sink_get_media_type, + .base.pin_query_interface = sink_query_interface, .pfnReceive = SmartTeeFilterInput_Receive, };
static const IPinVtbl SmartTeeFilterCaptureVtbl = { - BaseOutputPinImpl_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect, @@ -387,7 +401,7 @@ static const struct strmbase_source_ops capture_ops = };
static const IPinVtbl SmartTeeFilterPreviewVtbl = { - BaseOutputPinImpl_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect, diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index e5278152edd..e2608f43581 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -82,11 +82,6 @@ static inline VfwCapture *impl_from_IPersistPropertyBag(IPersistPropertyBag *ifa return CONTAINING_RECORD(iface, VfwCapture, IPersistPropertyBag_iface); }
-static inline VfwCapture *impl_from_IPin(IPin *iface) -{ - return CONTAINING_RECORD(iface, VfwCapture, source.pin.IPin_iface); -} - static IPin *vfw_capture_get_pin(struct strmbase_filter *iface, unsigned int index) { VfwCapture *This = impl_from_strmbase_filter(iface); @@ -536,6 +531,21 @@ static HRESULT source_get_media_type(struct strmbase_pin *pin, return hr; }
+static HRESULT source_query_interface(struct strmbase_pin *iface, REFIID iid, void **out) +{ + VfwCapture *filter = impl_from_strmbase_pin(iface); + + if (IsEqualGUID(iid, &IID_IKsPropertySet)) + *out = &filter->IKsPropertySet_iface; + else if (IsEqualGUID(iid, &IID_IAMStreamConfig)) + *out = &filter->IAMStreamConfig_iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef((IUnknown *)*out); + return S_OK; +} + static HRESULT WINAPI VfwPin_DecideBufferSize(struct strmbase_source *iface, IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *ppropInputRequest) { @@ -557,38 +567,15 @@ static const struct strmbase_source_ops source_ops = { .base.pin_query_accept = source_query_accept, .base.pin_get_media_type = source_get_media_type, + .base.pin_query_interface = source_query_interface, .pfnAttemptConnection = BaseOutputPinImpl_AttemptConnection, .pfnDecideBufferSize = VfwPin_DecideBufferSize, .pfnDecideAllocator = BaseOutputPinImpl_DecideAllocator, };
-static HRESULT WINAPI VfwPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) -{ - VfwCapture *filter = impl_from_IPin(iface); - - TRACE("%s %p\n", debugstr_guid(riid), ppv); - - *ppv = NULL; - if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IPin)) - *ppv = &filter->source.pin.IPin_iface; - else if (IsEqualIID(riid, &IID_IKsPropertySet)) - *ppv = &filter->IKsPropertySet_iface; - else if (IsEqualIID(riid, &IID_IAMStreamConfig)) - *ppv = &filter->IAMStreamConfig_iface; - - if (*ppv) - { - IUnknown_AddRef((IUnknown *)(*ppv)); - return S_OK; - } - - FIXME("No interface for %s!\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - static const IPinVtbl VfwPin_Vtbl = { - VfwPin_QueryInterface, + BasePinImpl_QueryInterface, BasePinImpl_AddRef, BasePinImpl_Release, BaseOutputPinImpl_Connect, diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index 1dbfee07a6c..190c9078fab 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -362,35 +362,6 @@ static inline struct strmbase_source *impl_source_from_IPin( IPin *iface ) return CONTAINING_RECORD(iface, struct strmbase_source, pin.IPin_iface); }
-HRESULT WINAPI BaseOutputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) -{ - struct strmbase_source *This = impl_source_from_IPin(iface); - - TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); - - *ppv = NULL; - - if (IsEqualIID(riid, &IID_IUnknown)) - *ppv = iface; - else if (IsEqualIID(riid, &IID_IPin)) - *ppv = iface; - else if (IsEqualIID(riid, &IID_IMediaSeeking) || - IsEqualIID(riid, &IID_IQualityControl)) - { - return IBaseFilter_QueryInterface(&This->pin.filter->IBaseFilter_iface, riid, ppv); - } - - if (*ppv) - { - IUnknown_AddRef((IUnknown *)(*ppv)); - return S_OK; - } - - FIXME("No interface for %s!\n", debugstr_guid(riid)); - - return E_NOINTERFACE; -} - HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt) { HRESULT hr; @@ -758,36 +729,6 @@ static inline BaseInputPin *impl_BaseInputPin_from_IPin( IPin *iface ) return CONTAINING_RECORD(iface, BaseInputPin, pin.IPin_iface); }
-HRESULT WINAPI BaseInputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv) -{ - BaseInputPin *This = impl_BaseInputPin_from_IPin(iface); - - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - *ppv = NULL; - - if (IsEqualIID(riid, &IID_IUnknown)) - *ppv = iface; - else if (IsEqualIID(riid, &IID_IPin)) - *ppv = iface; - else if (IsEqualIID(riid, &IID_IMemInputPin)) - *ppv = &This->IMemInputPin_iface; - else if (IsEqualIID(riid, &IID_IMediaSeeking)) - { - return IBaseFilter_QueryInterface(&This->pin.filter->IBaseFilter_iface, &IID_IMediaSeeking, ppv); - } - - if (*ppv) - { - IUnknown_AddRef((IUnknown *)(*ppv)); - return S_OK; - } - - FIXME("No interface for %s!\n", debugstr_guid(riid)); - - return E_NOINTERFACE; -} - HRESULT WINAPI BaseInputPinImpl_Connect(IPin *iface, IPin *pin, const AM_MEDIA_TYPE *pmt) { ERR("(%p)->(%p, %p) outgoing connection on an input pin!\n", iface, pin, pmt); diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h index 5ee13c8892e..85c5486f6b4 100644 --- a/include/wine/strmbase.h +++ b/include/wine/strmbase.h @@ -113,7 +113,6 @@ HRESULT WINAPI BasePinImpl_QueryInternalConnections(IPin * iface, IPin ** apPin, HRESULT WINAPI BasePinImpl_NewSegment(IPin * iface, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
/* Base Output Pin */ -HRESULT WINAPI BaseOutputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv); HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseOutputPinImpl_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseOutputPinImpl_Disconnect(IPin * iface); @@ -135,7 +134,6 @@ void strmbase_source_init(struct strmbase_source *pin, const IPinVtbl *vtbl, str const WCHAR *name, const struct strmbase_source_ops *func_table);
/* Base Input Pin */ -HRESULT WINAPI BaseInputPinImpl_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv); HRESULT WINAPI BaseInputPinImpl_Connect(IPin * iface, IPin * pConnector, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseInputPinImpl_ReceiveConnection(IPin * iface, IPin * pReceivePin, const AM_MEDIA_TYPE * pmt); HRESULT WINAPI BaseInputPinImpl_QueryAccept(IPin * iface, const AM_MEDIA_TYPE * pmt);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=56955
Your paranoid android.
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 error: patch failed: dlls/qcap/avico.c:406 error: patch failed: dlls/qcap/smartteefilter.c:319 error: patch failed: dlls/qcap/vfwcapture.c:557 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 error: patch failed: dlls/qcap/avico.c:406 error: patch failed: dlls/qcap/smartteefilter.c:319 error: patch failed: dlls/qcap/vfwcapture.c:557 Task: Patch failed to apply
GStreamer's mpegpsdemux reports the duration as 0 otherwise; this isn't particularly correct, but it's also not particularly interesting.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/tests/rsrc.rc | 2 +- dlls/quartz/tests/test.mpg | Bin 6144 -> 12288 bytes 2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/quartz/tests/rsrc.rc b/dlls/quartz/tests/rsrc.rc index 660ad476e13..753415cf8de 100644 --- a/dlls/quartz/tests/rsrc.rc +++ b/dlls/quartz/tests/rsrc.rc @@ -24,7 +24,7 @@ /* @makedep: test.avi */ test.avi RCDATA "test.avi"
-/* ffmpeg -f lavfi -i smptebars -f lavfi -i "sine=frequency=1000" -t 0.04 -r 25 -f mpeg -vcodec mpeg1video -vf scale=32x24 -acodec mp2 test.mpg */ +/* ffmpeg -f lavfi -i smptebars -f lavfi -i "sine=frequency=1000" -t 0.16 -r 25 -f mpeg -vcodec mpeg1video -vf scale=32x24 -acodec mp2 test.mpg */ /* @makedep: test.mpg */ test.mpg RCDATA "test.mpg"
diff --git a/dlls/quartz/tests/test.mpg b/dlls/quartz/tests/test.mpg index 7fe379aa3fcdee192f654a6612308532c81b1d8d..97bb1abae1d6f0676b9f9484b9847c587bb7dd89 100644 GIT binary patch delta 8903 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
delta 1838 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
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=56956
Your paranoid android.
=== build (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 error: patch failed: dlls/qcap/avico.c:406 error: patch failed: dlls/qcap/smartteefilter.c:319 error: patch failed: dlls/qcap/vfwcapture.c:557 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 error: patch failed: dlls/qcap/avico.c:406 error: patch failed: dlls/qcap/smartteefilter.c:319 error: patch failed: dlls/qcap/vfwcapture.c:557 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 error: patch failed: dlls/strmbase/renderer.c:226 error: patch failed: dlls/strmbase/transform.c:161 error: patch failed: dlls/quartz/filesource.c:703 error: patch failed: dlls/qcap/avico.c:406 error: patch failed: dlls/qcap/smartteefilter.c:319 error: patch failed: dlls/qcap/vfwcapture.c:557 Task: Patch failed to apply
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=56952
Your paranoid android.
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 Task: Patch failed to apply
=== debian10 (build log) ===
error: patch failed: include/wine/strmbase.h:47 Task: Patch failed to apply