DXVAHD_STREAM_STATE_LUMA_KEY_DATA 構造体 (dxvahd.h)
Microsoft DirectX Video Acceleration High Definition (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 キー設定が有効になります。 それ以外の場合、luma キー設定は無効になります。 既定値は FALSE です。
Lower
luma キーの下限。 範囲は [0....1]. 既定の状態値は 0.0 です。
Upper
luma キーの上限。 範囲は [0....1]. 既定の状態値は 0.0 です。
解説
この状態を使用するには、デバイスで 、DXVAHD_FEATURE_CAPS_LUMA_KEY 機能フラグによって示される luma キー設定がサポートされている必要があります。 この機能を照会するには、 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] を使用して、ルマ キーの下限と上限を示します。 チャネルごとに n ビットの形式を指定すると、これらの値は次のように luma 値に変換されます。
val = f * ((1 << n)-1)
ルマ値が上限と下限 (両端を含む) 内にあるピクセルは、透明として扱われます。
たとえば、ピクセル形式で 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 [デスクトップ アプリのみ] |
Header | dxvahd.h |