Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mfplat/tests/mfplat.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index deb9e78efba..0464293b37f 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -136,6 +136,7 @@ static DXGI_FORMAT (WINAPI *pMFMapDX9FormatToDXGIFormat)(DWORD format); static HRESULT (WINAPI *pMFCreateVideoSampleAllocatorEx)(REFIID riid, void **allocator); static HRESULT (WINAPI *pMFCreateDXGISurfaceBuffer)(REFIID riid, IUnknown *surface, UINT subresource, BOOL bottomup, IMFMediaBuffer **buffer); +static HRESULT (WINAPI *pMFCreateVideoMediaTypeFromSubtype)(const GUID *subtype, IMFVideoMediaType **media_type);
static HWND create_window(void) { @@ -799,6 +800,7 @@ static void init_functions(void) X(MFCreateMFByteStreamOnStream); X(MFCreateTrackedSample); X(MFCreateTransformActivate); + X(MFCreateVideoMediaTypeFromSubtype); X(MFCreateVideoSampleAllocatorEx); X(MFGetPlaneSize); X(MFGetStrideForBitmapInfoHeader); @@ -965,28 +967,32 @@ if(0) IUnknown_Release(unk2);
IUnknown_Release(unk); + IMFMediaType_Release(mediatype);
- hr = MFCreateVideoMediaTypeFromSubtype(&MFVideoFormat_RGB555, &video_type); - ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - - check_interface(video_type, &IID_IMFMediaType, TRUE); - check_interface(video_type, &IID_IMFVideoMediaType, TRUE); + if (pMFCreateVideoMediaTypeFromSubtype) + { + hr = pMFCreateVideoMediaTypeFromSubtype(&MFVideoFormat_RGB555, &video_type); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
- /* Major and subtype are set on creation. */ - hr = IMFVideoMediaType_GetCount(video_type, &count); - ok(count == 2, "Unexpected attribute count %#x.\n", hr); + check_interface(video_type, &IID_IMFMediaType, TRUE); + check_interface(video_type, &IID_IMFVideoMediaType, TRUE);
- hr = IMFVideoMediaType_DeleteAllItems(video_type); - ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + /* Major and subtype are set on creation. */ + hr = IMFVideoMediaType_GetCount(video_type, &count); + ok(count == 2, "Unexpected attribute count %#x.\n", hr);
- hr = IMFVideoMediaType_GetCount(video_type, &count); - ok(!count, "Unexpected attribute count %#x.\n", hr); + hr = IMFVideoMediaType_DeleteAllItems(video_type); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
- check_interface(video_type, &IID_IMFVideoMediaType, FALSE); + hr = IMFVideoMediaType_GetCount(video_type, &count); + ok(!count, "Unexpected attribute count %#x.\n", hr);
- IMFVideoMediaType_Release(video_type); + check_interface(video_type, &IID_IMFVideoMediaType, FALSE);
- IMFMediaType_Release(mediatype); + IMFVideoMediaType_Release(video_type); + } + else + win_skip("MFCreateVideoMediaTypeFromSubtype() is not available.\n");
/* IMFAudioMediaType */ hr = MFCreateMediaType(&mediatype);