Share via


estructura DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA (dxvahd.h)

Especifica el espacio de color de salida para las operaciones de blit, cuando se usa la alta definición de alta definición de aceleración de vídeo directX (DXVA-HD).

Sintaxis

typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
  union {
    struct {
      UINT Usage : 1;
      UINT RGB_Range : 1;
      UINT YCbCr_Matrix : 1;
      UINT YCbCr_xvYCC : 1;
      UINT Reserved : 28;
    };
    UINT Value;
  };
} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;

Miembros

Usage

Especifica si la salida está pensada para la reproducción o el procesamiento de vídeo (por ejemplo, la edición o la creación). El dispositivo puede optimizar el procesamiento en función del tipo. El valor de estado predeterminado es 0 (reproducción).

Valor Significado
0
Reproducción.
1
Procesamiento de vídeo.

RGB_Range

Especifica el intervalo de colores RGB. El valor de estado predeterminado es 0 (intervalo completo).

Valor Significado
0
Intervalo completo (0-255).
1
Intervalo limitado (16-235).

YCbCr_Matrix

Especifica la matriz de transferencia YCbCr. El valor de estado predeterminado es 0 (BT.601).

Valor Significado
0
UIT-R BT.601.
1
UIT-R BT.709.

YCbCr_xvYCC

Especifica si la salida usa YCbCr convencional o YCbCr extendido (xvYCC). El valor de estado predeterminado es cero (YCbCr convencional).

Valor Significado
0
YCbCr convencional.
1
YCbCr extendido (xvYCC).

Reserved

Value

Comentarios

El miembro RGB_Range se aplica a la salida RGB, mientras que los miembros YCbCr_Matrix y YCbCr_xvYCC se aplican a la salida de YCbCr (YUV). Si el dispositivo realiza la conversión de espacio de color en el color de fondo, usa los valores que se aplican a ambos espacios de color.

YCbCr extendido se puede usar con cualquier matriz de transferencia. YCbCr extendido no cambia el punto negro o el punto blanco: el punto negro sigue siendo 16 y el punto blanco sigue siendo 235. Sin embargo, YCbCr extendido permite explícitamente valores más negros que negros en el intervalo 1–15, y los valores más blancos en el intervalo 236–254. Cuando se usa YCbCr extendido, el controlador no debe recortar los valores luma al intervalo nominal de 16–235.

Si el dispositivo admite YCbCr extendido, establece la marca de funcionalidad DXVAHD_DEVICE_CAPS_xvYCC en el miembro DeviceCaps de la estructura DXVAHD_VPDEVCAPS . De lo contrario, el dispositivo omite el valor del miembro YCbCr_xvYCC y trata todas las salidas YCbCr como YCbCr convencionales. Para obtener las funcionalidades del dispositivo, llame a IDXVAHD_Device::GetVideoProcessorDeviceCaps.

Si el formato de salida es un formato RGB de gama amplia, la salida podría estar fuera del intervalo nominal [0...1] de sRGB. Esto es especialmente cierto si una o varias secuencias de entrada usan YCbCr extendido.

Ejemplos

HRESULT DXVAHD_SetOutputColorSpace(
    IDXVAHD_VideoProcessor *pVP,
    BOOL bPlayback,     // TRUE = playback, FALSE = video processing
    UINT RGB_Range,     // 0 = 0-255, 1 = 16-235
    UINT YCbCr_Matrix,  // 0 = BT.601, 1 = BT.709
    UINT YCbCr_xvYCC    // 0 = Conventional YCbCr, 1 = xvYCC
    )
{
    DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA data =
    {
        bPlayback ? 0 : 1,
        RGB_Range ? 1 : 0,
        YCbCr_Matrix ? 1 : 0,
        YCbCr_xvYCC ? 1 : 0
    };

    HRESULT hr = pVP->SetVideoProcessBltState(
        DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE,
        sizeof(data),
        &data
        );

    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_BLT_STATE

Estructuras de vídeo de Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessBltState

Estructuras de Media Foundation