feat(encode): native QSV backend — libvpl-sys + qsv.rs (Phases 0-3 of design/native-qsv-encoder.md)
Vendored MIT VPL dispatcher (static, trimmed tree, pin 674d015b/v2.17.0) built via cmake+bindgen behind new feature 'qsv' (pf-encode + punktfunk-host forward). qsv.rs: dispatcher session on the capture adapter (LUID-matched), SetHandle D3D11, AsyncDepth=1/GopRefDist=1/VDEnc/CBR + HRD-off low-latency config, GetSurfaceForEncode + GPU CopySubresourceRegion input (zero-copy, no readback path), bounded sync-point poll, in-place reset with teardown escalation, no-IDR bitrate retarget (Reset + StartNewSequence=OFF), 10-bit P010 HEVC-Main10/AV1, HDR mastering/CLL SEI-OBU at IDR + BT.2020/PQ VSI, LTR-RFI via mfxExtRefListCtrl (AMF slot policy port, Query-gated per codec, wire-index FrameOrder pinning). Dispatch: native-first with ffmpeg fallback + PUNKTFUNK_QSV_FFMPEG hatch; probes (can_encode_10bit / windows_codec_support / windows_backend_is_probed) now answer natively for QSV. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
/*############################################################################
|
||||
# Copyright Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
############################################################################*/
|
||||
|
||||
#include "mfxdefs.h"
|
||||
|
||||
#ifndef __MFXIMPLCAPS_H__
|
||||
#define __MFXIMPLCAPS_H__
|
||||
|
||||
#include "mfxstructures.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/*!
|
||||
@brief
|
||||
Delivers implementation capabilities in the requested format according to the format value. Calling this
|
||||
function directly is not recommended. Instead, applications must call the MFXEnumImplementations function.
|
||||
|
||||
@param[in] format Format in which capabilities must be delivered. See mfxImplCapsDeliveryFormat for more details.
|
||||
@param[out] num_impls Number of the implementations.
|
||||
|
||||
@return
|
||||
Array of handles to the capability report or NULL in case of unsupported format or NULL num_impls pointer.
|
||||
Length of array is equal to num_impls.
|
||||
|
||||
@since This function is available since API version 2.0.
|
||||
*/
|
||||
mfxHDL* MFX_CDECL MFXQueryImplsDescription(mfxImplCapsDeliveryFormat format, mfxU32* num_impls);
|
||||
|
||||
/*!
|
||||
@brief
|
||||
Destroys the handle allocated by the MFXQueryImplsDescription function or the MFXQueryImplsProperties function.
|
||||
Implementation must remember which handles are released. Once the last handle is released, this function must release memory
|
||||
allocated for the array of handles. Calling this function directly is not recommended. Instead, applications must call
|
||||
the MFXDispReleaseImplDescription function.
|
||||
|
||||
@param[in] hdl Handle to destroy. Can be equal to NULL.
|
||||
|
||||
@return
|
||||
MFX_ERR_NONE The function completed successfully.
|
||||
|
||||
@since This function is available since API version 2.0.
|
||||
*/
|
||||
mfxStatus MFX_CDECL MFXReleaseImplDescription(mfxHDL hdl);
|
||||
|
||||
#ifdef ONEVPL_EXPERIMENTAL
|
||||
/*!
|
||||
@brief
|
||||
Delivers implementation capabilities for configured properties.
|
||||
The returned capability report will be sparsely filled out, with only properties available which
|
||||
were set via MFXSetConfigFilterProperty(). Calling this function directly is not recommended.
|
||||
Instead, applications must call the MFXEnumImplementations function.
|
||||
|
||||
|
||||
@param[in] properties Array of property name/value pairs indicating which properties to populate in the capability report.
|
||||
@param[in] num_properties Number of property name/value pairs.
|
||||
@param[out] num_impls Number of the implementations.
|
||||
|
||||
@return
|
||||
Array of handles to the capability report or NULL in case of NULL properties pointer or zero num_properties or NULL num_impls pointer.
|
||||
Length of array is equal to num_impls.
|
||||
|
||||
@since This function is available since API version 2.15.
|
||||
*/
|
||||
mfxHDL* MFX_CDECL MFXQueryImplsProperties(mfxQueryProperty** properties, mfxU32 num_properties, mfxU32* num_impls);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // __MFXIMPLCAPS_H__
|
||||
Reference in New Issue
Block a user