Module: wine Branch: master Commit: 48e110e0fd3e90d6a5fee011ee52ea3481adf3cd URL: https://gitlab.winehq.org/wine/wine/-/commit/48e110e0fd3e90d6a5fee011ee52ea3...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri Oct 13 11:57:18 2023 +0200
mfmediaengine: Use extension object in CanPlayType().
---
dlls/mfmediaengine/main.c | 12 ++++++++++-- dlls/mfmediaengine/tests/mfmediaengine.c | 1 - 2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c index b0c67f031a9..5a63974967d 100644 --- a/dlls/mfmediaengine/main.c +++ b/dlls/mfmediaengine/main.c @@ -1705,17 +1705,25 @@ static HRESULT WINAPI media_engine_Load(IMFMediaEngineEx *iface) return hr; }
-static HRESULT WINAPI media_engine_CanPlayType(IMFMediaEngineEx *iface, BSTR type, MF_MEDIA_ENGINE_CANPLAY *answer) +static HRESULT WINAPI media_engine_CanPlayType(IMFMediaEngineEx *iface, BSTR mime_type, MF_MEDIA_ENGINE_CANPLAY *answer) { struct media_engine *engine = impl_from_IMFMediaEngineEx(iface); HRESULT hr = E_NOTIMPL;
- FIXME("(%p, %s, %p): stub.\n", iface, debugstr_w(type), answer); + TRACE("%p, %s, %p.\n", iface, debugstr_w(mime_type), answer);
EnterCriticalSection(&engine->cs);
if (engine->flags & FLAGS_ENGINE_SHUT_DOWN) hr = MF_E_SHUTDOWN; + else + { + FIXME("Check builtin supported types.\n"); + + if (engine->extension) + hr = IMFMediaEngineExtension_CanPlayType(engine->extension, !!(engine->flags & MF_MEDIA_ENGINE_AUDIOONLY), + mime_type, answer); + }
LeaveCriticalSection(&engine->cs);
diff --git a/dlls/mfmediaengine/tests/mfmediaengine.c b/dlls/mfmediaengine/tests/mfmediaengine.c index d236d2b4bb8..66a1f0b79e9 100644 --- a/dlls/mfmediaengine/tests/mfmediaengine.c +++ b/dlls/mfmediaengine/tests/mfmediaengine.c @@ -2495,7 +2495,6 @@ static void test_media_extension(void)
mime = SysAllocString(L"doesnotexist"); hr = IMFMediaEngine_CanPlayType(media_engine, mime, &answer); - todo_wine ok(hr == 0x80001234, "Unexpected hr %#lx.\n", hr); SysFreeString(mime);