From: Brendan McGrath <bmcgrath@codeweavers.com> --- dlls/iyuv_32/iyuv.c | 17 +++++++++++++++-- dlls/iyuv_32/tests/iyuv_32.c | 3 --- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/dlls/iyuv_32/iyuv.c b/dlls/iyuv_32/iyuv.c index ac169067666..3eb7cea1905 100644 --- a/dlls/iyuv_32/iyuv.c +++ b/dlls/iyuv_32/iyuv.c @@ -53,9 +53,22 @@ static HINSTANCE IYUV_32_module; static LRESULT IYUV_Open(const ICINFO *icinfo) { - FIXME("DRV_OPEN %p\n", icinfo); + IMFTransform *transform; - return 0; + TRACE("DRV_OPEN %p\n", icinfo); + + if (icinfo && compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) + return 0; + + CoInitialize(NULL); + + if (FAILED(CoCreateInstance(&CLSID_CColorConvertDMO, NULL, CLSCTX_INPROC_SERVER, &IID_IMFTransform, + (void **)&transform))) + transform = NULL; + + CoUninitialize(); + + return (LRESULT)transform; } static LRESULT IYUV_DecompressQuery(const BITMAPINFOHEADER *in, const BITMAPINFOHEADER *out) diff --git a/dlls/iyuv_32/tests/iyuv_32.c b/dlls/iyuv_32/tests/iyuv_32.c index 97572411e6e..1de936ac7ed 100644 --- a/dlls/iyuv_32/tests/iyuv_32.c +++ b/dlls/iyuv_32/tests/iyuv_32.c @@ -456,10 +456,7 @@ START_TEST(iyuv_32) int i; hic = ICLocate(ICTYPE_VIDEO, FOURCC_I420, &in, NULL, ICMODE_DECOMPRESS); - todo_wine ok(!!hic, "Failed to locate iyuv codec\n"); - if (!hic) - return; ICClose(hic); for (i = 0; i < ARRAY_SIZE(handler); i++) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10549