Module: wine Branch: master Commit: bf64ae2627fee37836d6fecf587b72919230b888 URL: https://gitlab.winehq.org/wine/wine/-/commit/bf64ae2627fee37836d6fecf587b729...
Author: Rémi Bernon rbernon@codeweavers.com Date: Mon May 6 11:21:08 2024 +0200
mfplat: Implement MFCreateVideoMediaType.
---
dlls/evr/evr.spec | 2 +- dlls/mfplat/mediatype.c | 24 ++++++++++++++++++++++++ dlls/mfplat/mfplat.spec | 2 +- include/mfapi.h | 1 + 4 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/evr/evr.spec b/dlls/evr/evr.spec index 0a3a3fb6d42..7383589573b 100644 --- a/dlls/evr/evr.spec +++ b/dlls/evr/evr.spec @@ -8,7 +8,7 @@ @ stub MFConvertToFP16Array @ stdcall -import MFCopyImage(ptr long ptr long long long) @ stdcall -import MFCreateDXSurfaceBuffer(ptr ptr long ptr) -@ stub MFCreateVideoMediaType +@ stdcall -import MFCreateVideoMediaType(ptr ptr) @ stub MFCreateVideoMediaTypeFromBitMapInfoHeader @ stdcall -import MFCreateVideoMediaTypeFromSubtype(ptr ptr) @ stub MFCreateVideoMediaTypeFromVideoInfoHeader2 diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c index cebc458a1e3..dd0b29fac32 100644 --- a/dlls/mfplat/mediatype.c +++ b/dlls/mfplat/mediatype.c @@ -3759,6 +3759,30 @@ static const GUID * get_mf_subtype_for_am_subtype(const GUID *subtype) return subtype; }
+HRESULT WINAPI MFCreateVideoMediaType(const MFVIDEOFORMAT *format, IMFVideoMediaType **media_type) +{ + struct media_type *object; + HRESULT hr; + + TRACE("%p, %p.\n", format, media_type); + + if (!media_type) + return E_INVALIDARG; + + if (FAILED(hr = create_media_type(&object))) + return hr; + + if (FAILED(hr = MFInitMediaTypeFromMFVideoFormat(&object->IMFMediaType_iface, format, format->dwSize))) + { + IMFMediaType_Release(&object->IMFMediaType_iface); + return hr; + } + + *media_type = &object->IMFVideoMediaType_iface; + + return hr; +} + /*********************************************************************** * MFCreateVideoMediaTypeFromVideoInfoHeader (mfplat.@) */ diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec index e311b3cf493..d61e18491d3 100644 --- a/dlls/mfplat/mfplat.spec +++ b/dlls/mfplat/mfplat.spec @@ -76,7 +76,7 @@ @ stdcall MFCreateTransformActivate(ptr) @ stub MFCreateURLFromPath @ stub MFCreateUdpSockets -@ stub MFCreateVideoMediaType +@ stdcall MFCreateVideoMediaType(ptr ptr) @ stub MFCreateVideoMediaTypeFromBitMapInfoHeader @ stub MFCreateVideoMediaTypeFromBitMapInfoHeaderEx @ stdcall MFCreateVideoMediaTypeFromSubtype(ptr ptr) diff --git a/include/mfapi.h b/include/mfapi.h index 2e1c2345418..86fdcb2b8e4 100644 --- a/include/mfapi.h +++ b/include/mfapi.h @@ -556,6 +556,7 @@ HRESULT WINAPI MFCreateMediaTypeFromRepresentation(GUID guid_representation, voi HRESULT WINAPI MFCreateSample(IMFSample **sample); HRESULT WINAPI MFCreateTempFile(MF_FILE_ACCESSMODE accessmode, MF_FILE_OPENMODE openmode, MF_FILE_FLAGS flags, IMFByteStream **bytestream); +HRESULT WINAPI MFCreateVideoMediaType(const MFVIDEOFORMAT *format, IMFVideoMediaType **media_type); HRESULT WINAPI MFCreateVideoMediaTypeFromSubtype(const GUID *subtype, IMFVideoMediaType **media_type);
#ifdef _KSMEDIA_