estrutura DXVAHD_STREAM_STATE_LUMA_KEY_DATA (dxvahd.h)
Especifica a chave luma para um fluxo de entrada, ao usar a DXVA-HD (Alta Definição de Aceleração de Vídeo) do Microsoft DirectX.
Sintaxe
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
Membros
Enable
Se TRUE, o keying do luma estará habilitado. Caso contrário, o keying luma será desabilitado. O valor padrão é FALSE.
Lower
O limite inferior para a chave luma. O intervalo é [0... 1]. O valor de estado padrão é 0,0.
Upper
O limite superior para a tecla luma. O intervalo é [0... 1]. O valor de estado padrão é 0,0.
Comentários
Para usar esse estado, o dispositivo deve dar suporte ao keying de luma, indicado pelo sinalizador de funcionalidade DXVAHD_FEATURE_CAPS_LUMA_KEY . Para consultar essa funcionalidade, chame IDXVAHD_Device::GetVideoProcessorDeviceCaps. Se o dispositivo der suporte ao keying luma, ele definirá o sinalizador DXVAHD_FEATURE_CAPS_LUMA_KEY no membro FeatureCaps da estrutura DXVAHD_VPDEVCAPS .
Se o dispositivo não der suporte ao keying de luma, o método IDXVAHD_VideoProcessor::SetVideoProcessStreamState falhará nesse estado.
Se o formato de entrada for RGB, o dispositivo também deverá dar suporte à funcionalidade DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY . Esse sinalizador de funcionalidade é definido no membro InputFormatCaps da estrutura DXVAHD_VPDEVCAPS . Se o sinalizador não estiver presente, o dispositivo ignorará o valor da chave luma para entrada RGB.
Os valores inferior e superior fornecem os limites inferior e superior da chave luma, usando um intervalo nominal de [0...1]. Dado um formato com n bits por canal, esses valores são convertidos em valores luma da seguinte maneira:
val = f * ((1 << n)-1)
Qualquer pixel cujo valor de luma se enquadra nos limites superior e inferior (inclusivo) é tratado como transparente.
Por exemplo, se o formato de pixel usar luma de 8 bits, o limite superior será calculado da seguinte maneira:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
Observe que o valor é fixado no intervalo [0...1] antes de multiplicar por 255.
Exemplos
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;
}
Requisitos
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | dxvahd.h |