Nikolay Sivov : mfplat/tests: Add media source rate service tests.
Alexandre Julliard
julliard at winehq.org
Fri Mar 26 16:03:30 CDT 2021
Module: wine
Branch: master
Commit: 49886f031257cd8cf685456b89ed91fe77f60c6e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=49886f031257cd8cf685456b89ed91fe77f60c6e
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Mar 26 09:25:26 2021 +0100
mfplat/tests: Add media source rate service tests.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfplat/tests/mfplat.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
index 1b24dce2fe0..103441be14c 100644
--- a/dlls/mfplat/tests/mfplat.c
+++ b/dlls/mfplat/tests/mfplat.c
@@ -93,6 +93,26 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
IUnknown_Release(unk);
}
+#define check_service_interface(a, b, c, d) check_service_interface_(__LINE__, a, b, c, d)
+static void check_service_interface_(unsigned int line, void *iface_ptr, REFGUID service, REFIID iid, BOOL supported)
+{
+ IUnknown *iface = iface_ptr;
+ HRESULT hr, expected_hr;
+ IMFGetService *gs;
+ IUnknown *unk;
+
+ expected_hr = supported ? S_OK : E_NOINTERFACE;
+
+ if (SUCCEEDED(hr = IUnknown_QueryInterface(iface, &IID_IMFGetService, (void **)&gs)))
+ {
+ hr = IMFGetService_GetService(gs, service, iid, (void **)&unk);
+ IMFGetService_Release(gs);
+ }
+ ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
+ if (SUCCEEDED(hr))
+ IUnknown_Release(unk);
+}
+
struct d3d11_resource_readback
{
ID3D11Resource *resource;
@@ -737,6 +757,11 @@ static void test_source_resolver(void)
ok(mediasource != NULL, "got %p\n", mediasource);
ok(obj_type == MF_OBJECT_MEDIASOURCE, "got %d\n", obj_type);
+todo_wine {
+ check_interface(mediasource, &IID_IMFGetService, TRUE);
+ check_service_interface(mediasource, &MF_RATE_CONTROL_SERVICE, &IID_IMFRateSupport, TRUE);
+ check_service_interface(mediasource, &MF_RATE_CONTROL_SERVICE, &IID_IMFRateControl, TRUE);
+}
hr = IMFMediaSource_CreatePresentationDescriptor(mediasource, &descriptor);
ok(hr == S_OK, "Failed to get presentation descriptor, hr %#x.\n", hr);
ok(descriptor != NULL, "got %p\n", descriptor);
More information about the wine-cvs
mailing list