From: Bernhard Kölbl bkoelbl@codeweavers.com
--- dlls/mfmediaengine/tests/Makefile.in | 2 +- dlls/mfmediaengine/tests/i420-64x64.avi | Bin 25472 -> 58982 bytes dlls/mfmediaengine/tests/mfmediaengine.c | 51 ++++++++++++++++++++--- dlls/mfmediaengine/tests/resource.rc | 5 ++- 4 files changed, 50 insertions(+), 8 deletions(-)
diff --git a/dlls/mfmediaengine/tests/Makefile.in b/dlls/mfmediaengine/tests/Makefile.in index b23d530d46f..437229a905d 100644 --- a/dlls/mfmediaengine/tests/Makefile.in +++ b/dlls/mfmediaengine/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = mfmediaengine.dll -IMPORTS = ole32 mfplat oleaut32 mfuuid uuid +IMPORTS = ole32 mf mfplat oleaut32 mfuuid uuid
C_SRCS = \ mfmediaengine.c diff --git a/dlls/mfmediaengine/tests/i420-64x64.avi b/dlls/mfmediaengine/tests/i420-64x64.avi index 8c5606919742baf66c29173fd1c362e0a40b8c25..74a8dac82f22973d38b058959868eae25a0a8393 100644 GIT binary patch literal 58982 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
delta 155 zcmaEMhPmN5qh*k%n_ERP1A}9jr-F}XaL5lP28N83qMXFC%nS<#28OUE1_u89%s>_c zg8&e-fLRO-j2kWYGfl2zmEcfGU|`72FU#D#uT>?%#Q`X9V33j|1f(TE+9VKs1!+{i MhA}GNz#GB`0H1msK>z>%
diff --git a/dlls/mfmediaengine/tests/mfmediaengine.c b/dlls/mfmediaengine/tests/mfmediaengine.c index 8aa9492d32b..8b4d06a3bd5 100644 --- a/dlls/mfmediaengine/tests/mfmediaengine.c +++ b/dlls/mfmediaengine/tests/mfmediaengine.c @@ -1307,7 +1307,7 @@ static void test_TransferVideoFrame(void) res = 0; hr = IMFMediaEngineEx_GetNumberOfStreams(media_engine, &res); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(res == 1, "Unexpected stream count %lu.\n", res); + ok(res == 2, "Unexpected stream count %lu.\n", res);
/* FIXME: Wine first video frame is often full of garbage, wait for another update */ res = WaitForSingleObject(notify->ready_event, 500); @@ -1483,7 +1483,7 @@ static HRESULT WINAPI passthrough_mft_AddInputStreams(IMFTransform *iface, DWORD static HRESULT WINAPI passthrough_mft_GetInputAvailableType(IMFTransform *iface, DWORD id, DWORD index, IMFMediaType **type) { - static const GUID *types[] = { &MFMediaType_Video }; + static const GUID *types[] = { &MFMediaType_Video, &MFMediaType_Audio }; HRESULT hr;
if (id) @@ -1772,9 +1772,9 @@ HRESULT passthrough_mft_create(UINT32 index, struct passthrough_mft **out) return S_OK; }
-static void test_video_effect(void) +static void test_effect(void) { - struct passthrough_mft *video_effect = NULL, *video_effect2 = NULL; + struct passthrough_mft *video_effect = NULL, *video_effect2 = NULL, *audio_effect = NULL, *audio_effect2 = NULL; struct test_transfer_notify *notify; IMFMediaEngineEx *media_engine_ex = NULL; ID3D11Texture2D *texture = NULL; @@ -1782,6 +1782,7 @@ static void test_video_effect(void) ID3D11Device *device = NULL; D3D11_TEXTURE2D_DESC desc; IMFByteStream *stream; + IMFMediaSink *sink; RECT dst_rect; UINT token; HRESULT hr; @@ -1836,6 +1837,20 @@ static void test_video_effect(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); EXPECT_REF(&video_effect2->IMFTransform_iface, 2);
+ hr = passthrough_mft_create(0, &audio_effect); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = passthrough_mft_create(1, &audio_effect2); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IMFMediaEngineEx_InsertAudioEffect(media_engine_ex, (IUnknown *)&audio_effect->IMFTransform_iface, FALSE); + todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine EXPECT_REF(&audio_effect->IMFTransform_iface, 2); + + hr = IMFMediaEngineEx_InsertAudioEffect(media_engine_ex, (IUnknown *)&audio_effect2->IMFTransform_iface, FALSE); + todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine EXPECT_REF(&audio_effect2->IMFTransform_iface, 2); + url = SysAllocString(L"i420-64x64.avi"); hr = IMFMediaEngineEx_SetSourceFromByteStream(media_engine_ex, stream, url); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -1858,6 +1873,21 @@ static void test_video_effect(void) ok(video_effect->processing_count > 0, "Unexpected processing count %lu.\n", video_effect->processing_count); ok(video_effect2->processing_count > 0, "Unexpected processing count %lu.\n", video_effect2->processing_count);
+ if (SUCCEEDED(hr = MFCreateAudioRenderer(NULL, &sink))) + { + todo_wine + ok(audio_effect->processing_count > 0, "Unexpected processing count %lu.\n", audio_effect->processing_count); + todo_wine + ok(audio_effect2->processing_count > 0, "Unexpected processing count %lu.\n", audio_effect2->processing_count); + + IMFMediaSink_Release(sink); + } + else if (hr == MF_E_NO_AUDIO_PLAYBACK_DEVICE) + { + ok(!audio_effect->processing_count, "Unexpected processing count %lu.\n", audio_effect->processing_count); + ok(!audio_effect2->processing_count, "Unexpected processing count %lu.\n", audio_effect2->processing_count); + } + done: if (media_engine_ex) { @@ -1872,6 +1902,17 @@ done: if (device) ID3D11Device_Release(device);
+ if (audio_effect2) + { + ref = IMFTransform_Release(&audio_effect2->IMFTransform_iface); + ok(!ref, "Unexpected ref %lu.\n", ref); + } + if (audio_effect) + { + ref = IMFTransform_Release(&audio_effect->IMFTransform_iface); + ok(!ref, "Unexpected ref %lu.\n", ref); + } + if (video_effect2) { ref = IMFTransform_Release(&video_effect2->IMFTransform_iface); @@ -1917,7 +1958,7 @@ START_TEST(mfmediaengine) test_SetSourceFromByteStream(); test_audio_configuration(); test_TransferVideoFrame(); - test_video_effect(); + test_effect();
IMFMediaEngineClassFactory_Release(factory);
diff --git a/dlls/mfmediaengine/tests/resource.rc b/dlls/mfmediaengine/tests/resource.rc index 50152586758..960e5ffd73e 100644 --- a/dlls/mfmediaengine/tests/resource.rc +++ b/dlls/mfmediaengine/tests/resource.rc @@ -21,8 +21,9 @@ /* Generated with: * gst-launch-1.0 videotestsrc num-buffers=4 pattern=smpte100 ! \ * video/x-raw,format=I420,width=64,height=64,framerate=30000/1001 ! \ - * videoflip method=clockwise ! videoconvert ! \ - * avimux ! filesink location=dlls/mfmediaengine/tests/i420-64x64.avi + * videoflip method=clockwise ! videoconvert ! queue ! mux. \ + * audiotestsrc num-buffers=4 ! audioconvert ! audio/x-raw,rate=44100,channels=2 ! queue ! mux. \ + * avimux name=mux ! filesink location=dlls/mfmediaengine/tests/i420-64x64.avi */ /* @makedep: i420-64x64.avi */ i420-64x64.avi RCDATA i420-64x64.avi