mfmediaengine: Use extension object in CanPlayType().

This commit is contained in:
Nikolay Sivov 2023-10-13 11:57:18 +02:00 committed by Alexandre Julliard
parent b5d4394913
commit 48e110e0fd
2 changed files with 10 additions and 3 deletions

View file

@ -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);

View file

@ -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);