mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
mediafoundation: Add support for setting CODECAPI_AVEncSliceGenerationMode
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37982>
This commit is contained in:
parent
a6f84de5b0
commit
e612709141
2 changed files with 23 additions and 1 deletions
|
|
@ -274,6 +274,10 @@ StringFromCodecAPI( const GUID *Api )
|
|||
{
|
||||
return "CODECAPI_AVEncVideoRateControlFramePreAnalysisExternalReconDownscale";
|
||||
}
|
||||
else if (*Api == CODECAPI_AVEncSliceGenerationMode)
|
||||
{
|
||||
return "CODECAPI_AVEncSliceGenerationMode";
|
||||
}
|
||||
else if( *Api == CODECAPI_AVEncVideoInputDeltaQPBlockSettings )
|
||||
{
|
||||
return "CODECAPI_AVEncVideoInputDeltaQPBlockSettings";
|
||||
|
|
@ -344,7 +348,7 @@ CDX12EncHMFT::IsSupported( const GUID *Api )
|
|||
*Api == CODECAPI_AVEncVideoMaxNumRefFrame || *Api == CODECAPI_AVEncVideoMeanAbsoluteDifference ||
|
||||
*Api == CODECAPI_AVEncVideoMaxQP || *Api == CODECAPI_AVScenarioInfo || *Api == CODECAPI_AVEncVideoROIEnabled ||
|
||||
*Api == CODECAPI_AVEncVideoLTRBufferControl || *Api == CODECAPI_AVEncVideoMarkLTRFrame ||
|
||||
*Api == CODECAPI_AVEncVideoUseLTRFrame )
|
||||
*Api == CODECAPI_AVEncVideoUseLTRFrame || *Api == CODECAPI_AVEncSliceGenerationMode)
|
||||
{
|
||||
hr = S_OK;
|
||||
return hr;
|
||||
|
|
@ -939,6 +943,11 @@ CDX12EncHMFT::GetValue( const GUID *Api, VARIANT *Value )
|
|||
Value->vt = VT_BOOL;
|
||||
Value->boolVal = m_bRateControlFramePreAnalysisExternalReconDownscale ? VARIANT_TRUE : VARIANT_FALSE;
|
||||
}
|
||||
else if (*Api == CODECAPI_AVEncSliceGenerationMode)
|
||||
{
|
||||
Value->vt = VT_UI4;
|
||||
Value->ulVal = m_uiSliceGenerationMode;
|
||||
}
|
||||
else if( *Api == CODECAPI_AVEncWorkGlobalPriority )
|
||||
{
|
||||
Value->vt = VT_UI4;
|
||||
|
|
@ -1809,6 +1818,16 @@ CDX12EncHMFT::SetValue( const GUID *Api, VARIANT *Value )
|
|||
}
|
||||
m_bRateControlFramePreAnalysisExternalReconDownscale = Value->boolVal == VARIANT_TRUE ? TRUE : FALSE;
|
||||
}
|
||||
else if (*Api == CODECAPI_AVEncSliceGenerationMode)
|
||||
{
|
||||
if (Value->vt != VT_UI4)
|
||||
{
|
||||
CHECKHR_GOTO(E_INVALIDARG, done);
|
||||
}
|
||||
debug_printf("[dx12 hmft 0x%p] SET CODECAPI_AVEncSliceGenerationMode - %u\n", this, Value->ulVal);
|
||||
m_uiSliceGenerationMode = Value->ulVal;
|
||||
m_bSliceGenerationModeSet = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CHECKHR_GOTO( E_NOTIMPL, done );
|
||||
|
|
|
|||
|
|
@ -757,6 +757,9 @@ class __declspec( uuid( HMFT_GUID ) ) CDX12EncHMFT : CMFD3DManager,
|
|||
UINT32 m_uiVideoOutputBitsUsedMapBlockSize = 0;
|
||||
UINT32 m_uiVideoSatdMapBlockSize = 0;
|
||||
|
||||
UINT32 m_uiSliceGenerationMode = 0;
|
||||
BOOL m_bSliceGenerationModeSet = FALSE;
|
||||
|
||||
BOOL m_bRateControlFramePreAnalysis = FALSE;
|
||||
BOOL m_bRateControlFramePreAnalysisExternalReconDownscale = FALSE;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue