DXVAHD_STREAM_STATE_LUMA_KEY_DATA 結構 (dxvahd.h)
使用 Microsoft DirectX 視訊加速高畫質 (DXVA-HD) 時,指定輸入資料流程的 luma 索引鍵。
語法
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
成員
Enable
如果為 TRUE,則會啟用 luma keying。 否則,會停用 luma 索引鍵。 預設值為 FALSE。
Lower
luma 鍵的下限。 範圍是 [0...1]. 預設狀態值為 0.0。
Upper
luma 鍵的上限。 範圍是 [0...1]. 預設狀態值為 0.0。
備註
若要使用此狀態,裝置必須支援 luma keying,以 DXVAHD_FEATURE_CAPS_LUMA_KEY 功能旗標表示。 若要查詢這項功能,請呼叫 IDXVAHD_Device::GetVideoProcessorDeviceCaps。 如果裝置支援 luma 鍵處理,它會在 DXVAHD_VPDEVCAPS 結構的 FeatureCaps 成員中設定 DXVAHD_FEATURE_CAPS_LUMA_KEY 旗標。
如果裝置不支援 luma 金鑰處理,則此狀態的 IDXVAHD_VideoProcessor::SetVideoProcessStreamState 方法會失敗。
如果輸入格式為 RGB,裝置也必須支援 DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY 功能。 此功能旗標是在DXVAHD_VPDEVCAPS結構的InputFormatCaps成員中設定。 如果旗標不存在,裝置會忽略 RGB 輸入的 luma 索引鍵值。
Lower和Upper的值會使用 [0...1] 的標號範圍,提供 luma 索引鍵的下限和上限。 假設每個通道有 n 個位的格式,這些值會轉換成 luma 值,如下所示:
val = f * ((1 << n)-1)
其 luma 值落在上限和下限的任何圖元, (內含) 都會視為透明。
例如,如果像素格式使用 8 位 luma,則會計算上限,如下所示:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
請注意,值會限制在乘以 255 之前的範圍 [0...1]。
範例
HRESULT DXVAHD_SetLumaKey(
IDXVAHD_VideoProcessor *pVP,
UINT stream,
BOOL bEnable,
float fLower, // Lower bound for the luma key.
float fUpper // Upper bound for the luma key.
)
{
DXVAHD_STREAM_STATE_LUMA_KEY_DATA luma = { bEnable, fLower, fUpper };
HRESULT hr = pVP->SetVideoProcessStreamState(
stream,
DXVAHD_STREAM_STATE_LUMA_KEY,
sizeof(luma),
&luma
);
return hr;
}
需求
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限桌面應用程式] |
標頭 | dxvahd.h |