DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA structure (dxvahd.h)

Spécifie l’espace de couleurs d’un flux d’entrée Microsoft DirectX Video Acceleration High Definition (DXVA-HD).

Syntaxe

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;

Membres

Type

Spécifie si le flux d’entrée contient des vidéos ou des graphiques. L’appareil peut optimiser le traitement en fonction du type. La valeur d’état par défaut est 0 (vidéo).

Valeur Signification
0
Vidéo.
1
Graphiques.

RGB_Range

Spécifie la plage de couleurs RVB. La valeur d’état par défaut est 0 (plage complète).

Valeur Signification
0
Plage complète (0-255).
1
Plage limitée (16-235).

YCbCr_Matrix

Spécifie la matrice de transfert YCbCr. La valeur d’état par défaut est 0 (BT.601).

Valeur Signification
0
ITU-R BT.601.
1
ITU-R BT.709.

YCbCr_xvYCC

Spécifie si le flux d’entrée utilise des YCbCr classiques ou des YCbCr étendus (xvYCC). La valeur d’état par défaut est 0 (YCbCr conventionnel).

Valeur Signification
0
YCbCr conventionnel.
1
Extended YCbCr (xvYCC).

Reserved

Value

Remarques

Le membre RGB_Range s’applique à l’entrée RVB, tandis que les membres YCbCr_Matrix et YCbCr_xvYCC s’appliquent à l’entrée YCbCr (YUV).

Dans certaines situations, l’appareil peut effectuer une conversion de couleur intermédiaire sur le flux d’entrée. Dans ce cas, il utilise les indicateurs qui s’appliquent aux deux espaces de couleurs. Par exemple, supposons que l’appareil passe de RVB en YCbCr. Si le membre RGB_Range est 0 et que le membre YCbCr_Matrix est 1, l’appareil passe de la plage RVB complète à BT.709 YCbCr.

Si l’appareil prend en charge xvYCC, il retourne l’indicateur de fonctionnalité DXVAHD_DEVICE_CAPS_xvYCC dans le membre DeviceCaps de la structure DXVAHD_VPDEVCAPS . Sinon, l’appareil ignore la valeur de YCbCr_xvYCC et traite toutes les entrées YCbCr comme YCbCr conventionnelles. Pour obtenir les fonctionnalités de l’appareil, appelez IDXVAHD_Device ::GetVideoProcessorDeviceCaps.

Exemples

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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête dxvahd.h

Voir aussi

DXVA-HD

DXVAHD_STREAM_STATE

Structures vidéo Direct3D

IDXVAHD_VideoProcessor ::SetVideoProcessStreamState

Media Foundation Structures