Bagikan melalui


struktur DXVAHD_STREAM_STATE_LUMA_KEY_DATA (dxvahd.h)

Menentukan kunci luma untuk aliran input, saat menggunakan Definisi Tinggi Akselerasi Video Microsoft DirectX (DXVA-HD).

Sintaks

typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
  BOOL  Enable;
  FLOAT Lower;
  FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;

Anggota

Enable

Jika TRUE, kunci luma diaktifkan. Jika tidak, kunci luma dinonaktifkan. Nilai defaultnya adalah FALSE.

Lower

Batas bawah untuk kunci luma. Kisarannya adalah [0... 1]. Nilai status default adalah 0,0.

Upper

Batas atas untuk kunci luma. Kisarannya adalah [0... 1]. Nilai status default adalah 0,0.

Keterangan

Untuk menggunakan status ini, perangkat harus mendukung kunci luma, yang ditunjukkan oleh bendera kemampuan DXVAHD_FEATURE_CAPS_LUMA_KEY . Untuk mengkueri kemampuan ini, panggil IDXVAHD_Device::GetVideoProcessorDeviceCaps. Jika perangkat mendukung penekanan kunci luma, perangkat mengatur bendera DXVAHD_FEATURE_CAPS_LUMA_KEY di anggota FeatureCaps dari struktur DXVAHD_VPDEVCAPS .

Jika perangkat tidak mendukung kunci luma, metode IDXVAHD_VideoProcessor::SetVideoProcessStreamState gagal untuk status ini.

Jika format input adalah RGB, perangkat juga harus mendukung kemampuan DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY . Bendera kemampuan ini diatur dalam anggota InputFormatCaps dari struktur DXVAHD_VPDEVCAPS . Jika bendera tidak ada, perangkat mengabaikan nilai kunci luma untuk input RGB.

Nilai Bawah dan Atas memberikan batas bawah dan atas kunci luma, menggunakan rentang nominal [0...1]. Mengingat format dengan n bit per saluran, nilai-nilai ini dikonversi ke nilai luma sebagai berikut:

val = f * ((1 << n)-1)

Piksel apa pun yang nilai lumanya berada dalam batas atas dan bawah (inklusif) diperlakukan transparan.

Misalnya, jika format piksel menggunakan luma 8-bit, batas atas dihitung sebagai berikut:

BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)

Perhatikan bahwa nilai dijepit ke rentang [0...1] sebelum dikalikan dengan 255.

Contoh

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;
}

Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Header dxvahd.h

Lihat juga

DXVA-HD

DXVAHD_STREAM_STATE

Struktur Video Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

Struktur Media Foundation