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 |