From: Brendan McGrath <bmcgrath@codeweavers.com> --- dlls/amstream/tests/amstream.c | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index 53dbef6edcd..d38d1e7eff7 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -2881,6 +2881,7 @@ static void test_enum_media_types(void) IEnumMediaTypes *enum1, *enum2; AM_MEDIA_TYPE *mts[2]; IMediaStream *stream; + IDirectDraw *ddraw; ULONG ref, count; HRESULT hr; IPin *pin; @@ -3011,6 +3012,45 @@ static void test_enum_media_types(void) ref = IAMMultiMediaStream_Release(mmstream); ok(!ref, "Got outstanding refcount %ld.\n", ref); + + /* Test PrimaryVideo stream with ddraw */ + mmstream = create_ammultimediastream(); + + hr = DirectDrawCreate(NULL, &ddraw, NULL); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)ddraw, &MSPID_PrimaryVideo, 0, &stream); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IMediaStream_QueryInterface(stream, &IID_IPin, (void **)&pin); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IPin_EnumMediaTypes(pin, &enum1); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IEnumMediaTypes_Next(enum1, 1, mts, &count); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(count == 1, "Got count %lu.\n", count); + ok(IsEqualGUID(&mts[0]->majortype, &MEDIATYPE_Video), "Got major type %s\n", + wine_dbgstr_guid(&mts[0]->majortype)); + todo_wine + ok(IsEqualGUID(&mts[0]->subtype, &MEDIASUBTYPE_RGB32), "Got subtype %s\n", + wine_dbgstr_guid(&mts[0]->subtype)); + ok(mts[0]->bFixedSizeSamples == TRUE, "Got fixed size %d.\n", mts[0]->bFixedSizeSamples); + ok(!mts[0]->bTemporalCompression, "Got temporal compression %d.\n", mts[0]->bTemporalCompression); + todo_wine + ok(mts[0]->lSampleSize == 40000, "Got sample size %lu.\n", mts[0]->lSampleSize); + ok(IsEqualGUID(&mts[0]->formattype, &GUID_NULL), "Got format type %s.\n", + wine_dbgstr_guid(&mts[0]->formattype)); + ok(!mts[0]->pUnk, "Got pUnk %p.\n", mts[0]->pUnk); + + CoTaskMemFree(mts[0]); + IEnumMediaTypes_Release(enum1); + IPin_Release(pin); + IMediaStream_Release(stream); + IDirectDraw_Release(ddraw); + + ref = IAMMultiMediaStream_Release(mmstream); + ok(!ref, "Got outstanding refcount %ld.\n", ref); } static void test_media_types(void) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10677