diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c index c3dbf71d2da..fe4add83b7c 100644 --- a/dlls/qcap/avimux.c +++ b/dlls/qcap/avimux.c @@ -1110,9 +1110,12 @@ static HRESULT source_query_interface(struct strmbase_pin *iface, REFIID iid, vo return S_OK; } -static HRESULT source_query_accept(struct strmbase_pin *base, const AM_MEDIA_TYPE *amt) +static HRESULT source_query_accept(struct strmbase_pin *iface, const AM_MEDIA_TYPE *mt) { - FIXME("(%p) stub\n", base); + if (!IsEqualGUID(&mt->majortype, &GUID_NULL) && !IsEqualGUID(&mt->majortype, &MEDIATYPE_Stream)) + return S_FALSE; + if (!IsEqualGUID(&mt->subtype, &GUID_NULL) && !IsEqualGUID(&mt->subtype, &MEDIASUBTYPE_Avi)) + return S_FALSE; return S_OK; } diff --git a/dlls/qcap/tests/avimux.c b/dlls/qcap/tests/avimux.c index 3f43ff569cf..70575281cee 100644 --- a/dlls/qcap/tests/avimux.c +++ b/dlls/qcap/tests/avimux.c @@ -468,6 +468,7 @@ static void test_media_types(void) pmt->bFixedSizeSamples = FALSE; pmt->bTemporalCompression = TRUE; pmt->lSampleSize = 123; + pmt->formattype = FORMAT_VideoInfo; hr = IPin_QueryAccept(pin, pmt); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -476,7 +477,7 @@ static void test_media_types(void) ok(hr == S_OK, "Got hr %#x.\n", hr); pmt->majortype = MEDIATYPE_Video; hr = IPin_QueryAccept(pin, pmt); - todo_wine ok(hr == S_FALSE, "Got hr %#x.\n", hr); + ok(hr == S_FALSE, "Got hr %#x.\n", hr); pmt->majortype = MEDIATYPE_Stream; pmt->subtype = GUID_NULL; @@ -484,7 +485,7 @@ static void test_media_types(void) ok(hr == S_OK, "Got hr %#x.\n", hr); pmt->subtype = MEDIASUBTYPE_RGB8; hr = IPin_QueryAccept(pin, pmt); - todo_wine ok(hr == S_FALSE, "Got hr %#x.\n", hr); + ok(hr == S_FALSE, "Got hr %#x.\n", hr); pmt->subtype = MEDIASUBTYPE_Avi; CoTaskMemFree(pmt);