avcodec/mfenc: add support for D3D11 input surfaces

Adds D3D11 input surface support to the MediaFoundation encoder (mfenc),
allowing direct encoding of GPU frames without readback to system memory.
This improves performance and compatibility when used alongside scale_d3d11.

Signed-off-by: Dash Santosh <dash.sathyanarayanan@multicorewareinc.com>
This commit is contained in:
Dash Santosh 2025-05-22 05:34:37 -07:00 committed by dwbuiten
parent 96821211c2
commit d56522c6eb
2 changed files with 185 additions and 29 deletions

View file

@ -53,6 +53,13 @@ typedef struct MFFunctions {
IMFMediaBuffer **ppBuffer);
HRESULT (WINAPI *MFCreateSample) (IMFSample **ppIMFSample);
HRESULT (WINAPI *MFCreateMediaType) (IMFMediaType **ppMFType);
HRESULT (WINAPI *MFCreateDXGISurfaceBuffer) (REFIID riid,
IUnknown* punkSurface,
UINT uSubresourceIndex,
BOOL fBottomUpWhenLinear,
IMFMediaBuffer** ppBuffer);
HRESULT (WINAPI *MFCreateDXGIDeviceManager) (UINT* resetToken,
IMFDXGIDeviceManager** ppDeviceManager);
// MFTEnumEx is missing in Windows Vista's mfplat.dll.
HRESULT (WINAPI *MFTEnumEx)(GUID guidCategory, UINT32 Flags,
const MFT_REGISTER_TYPE_INFO *pInputType,