DXVAHD_STREAM_STATE_LUMA_KEY_DATA struttura (dxvahd.h)
Specifica la chiave luma per un flusso di input, quando si usa Microsoft DirectX Video Acceleration High Definition (DXVA-HD).
Sintassi
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
Members
Enable
Se TRUE, luma keying è abilitato. In caso contrario, luma keying è disabilitato. Il valore predefinito è FALSE.
Lower
Limite inferiore per la chiave luma. L'intervallo è [0... 1]. Il valore predefinito dello stato è 0,0.
Upper
Limite superiore per la chiave luma. L'intervallo è [0... 1]. Il valore predefinito dello stato è 0,0.
Commenti
Per usare questo stato, il dispositivo deve supportare luma keying, indicato dal flag di funzionalità DXVAHD_FEATURE_CAPS_LUMA_KEY . Per eseguire una query per questa funzionalità, chiamare IDXVAHD_Device::GetVideoProcessorDeviceCaps. Se il dispositivo supporta la chiave luma, imposta il flag di DXVAHD_FEATURE_CAPS_LUMA_KEY nel membro FeatureCaps della struttura DXVAHD_VPDEVCAPS .
Se il dispositivo non supporta la chiave luma, il metodo IDXVAHD_VideoProcessor::SetVideoProcessStreamState non riesce per questo stato.
Se il formato di input è RGB, il dispositivo deve supportare anche la funzionalità DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY . Questo flag di funzionalità è impostato nel membro InputFormatCaps della struttura DXVAHD_VPDEVCAPS . Se il flag non è presente, il dispositivo ignora il valore della chiave luma per l'input RGB.
I valori di Lower e Upper assegnano i limiti inferiori e superiori della chiave luma, usando un intervallo nominale di [0...1]. Dato un formato con n bit per canale, questi valori vengono convertiti in valori luma come indicato di seguito:
val = f * ((1 << n)-1)
Qualsiasi pixel il cui valore luma rientra all'interno dei limiti superiori e inferiori (inclusivi) viene considerato trasparente.
Ad esempio, se il formato pixel usa luma a 8 bit, il limite superiore viene calcolato come segue:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
Si noti che il valore viene bloccato all'intervallo [0...1] prima di moltiplicare per 255.
Esempio
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;
}
Requisiti
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Intestazione | dxvahd.h |