estructura DXVAHD_STREAM_STATE_LUMA_KEY_DATA (dxvahd.h)
Especifica la clave luma para una secuencia de entrada, cuando se usa la alta definición de alta definición de aceleración de vídeo de Microsoft DirectX (DXVA-HD).
Sintaxis
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
Miembros
Enable
Si es TRUE, el cifrado de luma está habilitado. De lo contrario, el cifrado de luma está deshabilitado. El valor predeterminado es FALSE.
Lower
Límite inferior para la clave luma. El intervalo es [0... 1]. El valor de estado predeterminado es 0,0.
Upper
Límite superior de la clave luma. El intervalo es [0... 1]. El valor de estado predeterminado es 0,0.
Comentarios
Para usar este estado, el dispositivo debe admitir el cifrado de luma, indicado por la marca de funcionalidad DXVAHD_FEATURE_CAPS_LUMA_KEY . Para consultar esta funcionalidad, llame a IDXVAHD_Device::GetVideoProcessorDeviceCaps. Si el dispositivo admite el cifrado de luma, establece la marca DXVAHD_FEATURE_CAPS_LUMA_KEY en el miembro FeatureCaps de la estructura DXVAHD_VPDEVCAPS .
Si el dispositivo no admite el cifrado de luma, se produce un error en el método IDXVAHD_VideoProcessor::SetVideoProcessStreamState para este estado.
Si el formato de entrada es RGB, el dispositivo también debe admitir la funcionalidad DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY . Esta marca de funcionalidad se establece en el miembro InputFormatCaps de la estructura DXVAHD_VPDEVCAPS . Si la marca no está presente, el dispositivo omite el valor de la clave luma para la entrada RGB.
Los valores de Lower y Upper dan los límites inferiores y superiores de la clave luma, utilizando un intervalo nominal de [0...1]. Dado un formato con n bits por canal, estos valores se convierten en valores luma de la siguiente manera:
val = f * ((1 << n)-1)
Cualquier píxel cuyo valor luma se encuentre dentro de los límites superior e inferior (ambos incluidos) se trata como transparente.
Por ejemplo, si el formato de píxel usa luma de 8 bits, el límite superior se calcula de la siguiente manera:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
Tenga en cuenta que el valor se sujeta al intervalo [0...1] antes de multiplicar por 255.
Ejemplos
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 compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Encabezado | dxvahd.h |
Consulte también
Estructuras de vídeo de Direct3D