From: Brendan McGrath <bmcgrath@codeweavers.com> --- dlls/iyuv_32/Makefile.in | 3 ++- dlls/iyuv_32/iyuv.c | 26 +++++++++++++++++++++++--- dlls/iyuv_32/iyuv_32.rc | 29 +++++++++++++++++++++++++++++ dlls/iyuv_32/iyuv_private.h | 27 +++++++++++++++++++++++++++ 4 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 dlls/iyuv_32/iyuv_32.rc create mode 100644 dlls/iyuv_32/iyuv_private.h diff --git a/dlls/iyuv_32/Makefile.in b/dlls/iyuv_32/Makefile.in index 6b9b11569b1..c386ec9b924 100644 --- a/dlls/iyuv_32/Makefile.in +++ b/dlls/iyuv_32/Makefile.in @@ -2,4 +2,5 @@ MODULE = iyuv_32.dll IMPORTS = user32 mfplat ole32 SOURCES = \ - iyuv.c + iyuv.c \ + iyuv_32.rc diff --git a/dlls/iyuv_32/iyuv.c b/dlls/iyuv_32/iyuv.c index e114fde50e0..c4899c64652 100644 --- a/dlls/iyuv_32/iyuv.c +++ b/dlls/iyuv_32/iyuv.c @@ -31,19 +31,23 @@ #include "vfw.h" #include "wmcodecdsp.h" +#include "iyuv_private.h" #include "wine/debug.h" #define COBJMACROS #include "mfapi.h" #include "mferror.h" -#include "mfobjects.h" #include "mfidl.h" +#include "mfobjects.h" #include "mftransform.h" WINE_DEFAULT_DEBUG_CHANNEL(iyuv_32); static HINSTANCE IYUV_32_module; +#define FOURCC_IYUV mmioFOURCC('I', 'Y', 'U', 'V') +#define IYUV_MAGIC FOURCC_IYUV + static LRESULT IYUV_Open(const ICINFO *icinfo) { FIXME("DRV_OPEN %p\n", icinfo); @@ -81,9 +85,25 @@ static LRESULT IYUV_Decompress(IMFTransform *transform, const ICDECOMPRESS *para static LRESULT IYUV_GetInfo(ICINFO *icinfo, DWORD size) { - FIXME("ICM_GETINFO %p %lu\n", icinfo, size); + TRACE("ICM_GETINFO %p %lu\n", icinfo, size); - return ICERR_UNSUPPORTED; + if (!icinfo) + return sizeof(ICINFO); + if (size < sizeof(ICINFO)) + return 0; + + icinfo->dwSize = sizeof(ICINFO); + icinfo->fccType = ICTYPE_VIDEO; + icinfo->fccHandler = IYUV_MAGIC; + icinfo->dwFlags = 0; + icinfo->dwVersion = 0; + icinfo->dwVersionICM = ICVERSION; + + LoadStringW(IYUV_32_module, IDS_NAME, icinfo->szName, ARRAY_SIZE(icinfo->szName)); + LoadStringW(IYUV_32_module, IDS_DESCRIPTION, icinfo->szDescription, ARRAY_SIZE(icinfo->szDescription)); + /* msvfw32 will fill icinfo->szDriver for us */ + + return sizeof(ICINFO); } /*********************************************************************** diff --git a/dlls/iyuv_32/iyuv_32.rc b/dlls/iyuv_32/iyuv_32.rc new file mode 100644 index 00000000000..a9705a2bd76 --- /dev/null +++ b/dlls/iyuv_32/iyuv_32.rc @@ -0,0 +1,29 @@ +/* + * Copyright 2026 Brendan McGrath for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "iyuv_private.h" + +#pragma makedep po + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_NAME "IYUV codec" + IDS_DESCRIPTION "IYUV codec" +} diff --git a/dlls/iyuv_32/iyuv_private.h b/dlls/iyuv_32/iyuv_private.h new file mode 100644 index 00000000000..cf2d392dc44 --- /dev/null +++ b/dlls/iyuv_32/iyuv_private.h @@ -0,0 +1,27 @@ +/* + * Copyright 2026 Brendan McGrath for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __IYUV_PRIVATE_H +#define __IYUV_PRIVATE_H + +#include "windef.h" + +#define IDS_NAME 100 +#define IDS_DESCRIPTION 101 + +#endif /* __IYUV_PRIVATE_H */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10549