1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

mfplat/mediatype: Implement MFInitMediaTypeFromVideoInfoHeader2.

This commit is contained in:
Rémi Bernon 2024-02-17 12:30:53 +01:00 committed by Alexandre Julliard
parent e497f0e88d
commit 4319ada736
3 changed files with 29 additions and 3 deletions

View file

@ -25,6 +25,7 @@
#include "uuids.h" #include "uuids.h"
#include "strmif.h" #include "strmif.h"
#include "initguid.h" #include "initguid.h"
#include "dvdmedia.h"
#include "ks.h" #include "ks.h"
#include "ksmedia.h" #include "ksmedia.h"
#include "amvideo.h" #include "amvideo.h"
@ -3747,9 +3748,9 @@ HRESULT WINAPI MFCreateVideoMediaTypeFromVideoInfoHeader(const KS_VIDEOINFOHEADE
} }
/*********************************************************************** /***********************************************************************
* MFInitMediaTypeFromVideoInfoHeader (mfplat.@) * MFInitMediaTypeFromVideoInfoHeader2 (mfplat.@)
*/ */
HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *media_type, const VIDEOINFOHEADER *vih, UINT32 size, HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *media_type, const VIDEOINFOHEADER2 *vih, UINT32 size,
const GUID *subtype) const GUID *subtype)
{ {
HRESULT hr = S_OK; HRESULT hr = S_OK;
@ -3793,6 +3794,27 @@ HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *media_type, cons
return hr; return hr;
} }
/***********************************************************************
* MFInitMediaTypeFromVideoInfoHeader (mfplat.@)
*/
HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *media_type, const VIDEOINFOHEADER *vih, UINT32 size,
const GUID *subtype)
{
VIDEOINFOHEADER2 vih2 =
{
.rcSource = vih->rcSource,
.rcTarget = vih->rcTarget,
.dwBitRate = vih->dwBitRate,
.dwBitErrorRate = vih->dwBitErrorRate,
.AvgTimePerFrame = vih->AvgTimePerFrame,
.bmiHeader = vih->bmiHeader,
};
TRACE("%p, %p, %u, %s.\n", media_type, vih, size, debugstr_guid(subtype));
return MFInitMediaTypeFromVideoInfoHeader2(media_type, &vih2, sizeof(vih2), subtype);
}
static HRESULT init_am_media_type_audio_format(AM_MEDIA_TYPE *am_type, UINT32 user_size, IMFMediaType *media_type) static HRESULT init_am_media_type_audio_format(AM_MEDIA_TYPE *am_type, UINT32 user_size, IMFMediaType *media_type)
{ {
UINT32 num_channels, value; UINT32 num_channels, value;

View file

@ -123,7 +123,7 @@
@ stub MFInitMediaTypeFromMFVideoFormat @ stub MFInitMediaTypeFromMFVideoFormat
@ stub MFInitMediaTypeFromMPEG1VideoInfo @ stub MFInitMediaTypeFromMPEG1VideoInfo
@ stub MFInitMediaTypeFromMPEG2VideoInfo @ stub MFInitMediaTypeFromMPEG2VideoInfo
@ stub MFInitMediaTypeFromVideoInfoHeader2 @ stdcall MFInitMediaTypeFromVideoInfoHeader2(ptr ptr long ptr)
@ stdcall MFInitMediaTypeFromVideoInfoHeader(ptr ptr long ptr) @ stdcall MFInitMediaTypeFromVideoInfoHeader(ptr ptr long ptr)
@ stdcall MFInitMediaTypeFromWaveFormatEx(ptr ptr long) @ stdcall MFInitMediaTypeFromWaveFormatEx(ptr ptr long)
@ stub MFInitVideoFormat @ stub MFInitVideoFormat

View file

@ -507,6 +507,8 @@ typedef enum
struct tagVIDEOINFOHEADER; struct tagVIDEOINFOHEADER;
typedef struct tagVIDEOINFOHEADER VIDEOINFOHEADER; typedef struct tagVIDEOINFOHEADER VIDEOINFOHEADER;
struct tagVIDEOINFOHEADER2;
typedef struct tagVIDEOINFOHEADER2 VIDEOINFOHEADER2;
typedef struct _AMMediaType AM_MEDIA_TYPE; typedef struct _AMMediaType AM_MEDIA_TYPE;
HRESULT WINAPI MFAddPeriodicCallback(MFPERIODICCALLBACK callback, IUnknown *context, DWORD *key); HRESULT WINAPI MFAddPeriodicCallback(MFPERIODICCALLBACK callback, IUnknown *context, DWORD *key);
@ -593,6 +595,8 @@ HRESULT WINAPI MFInitAMMediaTypeFromMFMediaType(IMFMediaType *media_type, GUID f
HRESULT WINAPI MFInitMediaTypeFromAMMediaType(IMFMediaType *mediatype, const AM_MEDIA_TYPE *am_type); HRESULT WINAPI MFInitMediaTypeFromAMMediaType(IMFMediaType *mediatype, const AM_MEDIA_TYPE *am_type);
HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *media_type, const VIDEOINFOHEADER *vih, HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *media_type, const VIDEOINFOHEADER *vih,
UINT32 size, const GUID *subtype); UINT32 size, const GUID *subtype);
HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *media_type, const VIDEOINFOHEADER2 *vih,
UINT32 size, const GUID *subtype);
HRESULT WINAPI MFInitMediaTypeFromWaveFormatEx(IMFMediaType *mediatype, const WAVEFORMATEX *format, UINT32 size); HRESULT WINAPI MFInitMediaTypeFromWaveFormatEx(IMFMediaType *mediatype, const WAVEFORMATEX *format, UINT32 size);
HRESULT WINAPI MFInitVideoFormat_RGB(MFVIDEOFORMAT *format, DWORD width, DWORD height, DWORD d3dformat); HRESULT WINAPI MFInitVideoFormat_RGB(MFVIDEOFORMAT *format, DWORD width, DWORD height, DWORD d3dformat);
HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result); HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result);