Share via


struttura DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA (dxvahd.h)

Specifica lo spazio dei colori per un flusso di input DXVA-HD (Microsoft DirectX Video Acceleration High Definition).

Sintassi

typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
  union {
    struct {
      UINT Type : 1;
      UINT RGB_Range : 1;
      UINT YCbCr_Matrix : 1;
      UINT YCbCr_xvYCC : 1;
      UINT Reserved : 28;
    };
    UINT Value;
  };
} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;

Members

Type

Specifica se il flusso di input contiene video o grafica. Il dispositivo può ottimizzare l'elaborazione in base al tipo. Il valore di stato predefinito è 0 (video).

Valore Significato
0
Video.
1
Grafica.

RGB_Range

Specifica l'intervallo di colori RGB. Il valore di stato predefinito è 0 (intervallo completo).

Valore Significato
0
Intervallo completo (0-255).
1
Intervallo limitato (16-235).

YCbCr_Matrix

Specifica la matrice di trasferimento YCbCr. Il valore di stato predefinito è 0 (BT.601).

Valore Significato
0
ITU-R BT.601.
1
ITU-R BT.709.

YCbCr_xvYCC

Specifica se il flusso di input usa YCbCr convenzionale o YCbCr (xvYCC). Il valore di stato predefinito è 0 (YCbCr convenzionale).

Valore Significato
0
YCbCr convenzionale.
1
Extended YCbCr (xvYCC).

Reserved

Value

Commenti

Il membro RGB_Range si applica all'input RGB, mentre i membri YCbCr_Matrix e YCbCr_xvYCC si applicano all'input YCbCr (YUV).

In alcune situazioni, il dispositivo potrebbe eseguire una conversione di colore intermedia nel flusso di input. In tal caso, usa i flag che si applicano a entrambi gli spazi dei colori. Si supponga, ad esempio, che il dispositivo converta da RGB a YCbCr. Se il membro RGB_Range è 0 e il membro YCbCr_Matrix è 1, il dispositivo convertirà da RGB a BT.709 YCbCr.

Se il dispositivo supporta xvYCC, restituisce il flag di funzionalità DXVAHD_DEVICE_CAPS_xvYCC nel membro DeviceCaps della struttura DXVAHD_VPDEVCAPS . In caso contrario, il dispositivo ignora il valore di YCbCr_xvYCC e considera tutti gli input YCbCr come convenzionali YCbCr. Per ottenere le funzionalità del dispositivo, chiamare IDXVAHD_Device::GetVideoProcessorDeviceCaps.

Esempio

HRESULT DXVAHD_SetInputColorSpace(
    IDXVAHD_VideoProcessor *pVP,
    UINT stream,
    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_STREAM_STATE_INPUT_COLOR_SPACE_DATA data =
    {
        bPlayback ? 0 : 1,
        RGB_Range ? 1 : 0,
        YCbCr_Matrix ? 1 : 0,
        YCbCr_xvYCC ? 1 : 0
    };

    HRESULT hr = pVP->SetVideoProcessStreamState(
        stream,
        DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE,
        sizeof(data),
        &data
        );

    return hr;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Intestazione dxvahd.h

Vedi anche

DXVA-HD

DXVAHD_STREAM_STATE

Strutture video Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

Strutture di Media Foundation