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_