Compartir a través de


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

DXVA-HD

DXVAHD_STREAM_STATE

Estructuras de vídeo de Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

Estructuras de Media Foundation