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 キー値を無視します。

LowerUpper の値は、標準範囲 [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

関連項目

DXVA-HD

DXVAHD_STREAM_STATE

Direct3D ビデオ構造

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

Media Foundation Structures