структура DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA (dxvahd.h)

Задает цветовое пространство для входного потока microsoft DirectX Video Acceleration High Definition (DXVA-HD).

Синтаксис

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;

Члены

Type

Указывает, содержит ли входной поток видео или графику. Устройство может оптимизировать обработку в зависимости от типа. Значение состояния по умолчанию — 0 (видео).

Значение Значение
0
Видео.
1
Графика.

RGB_Range

Задает диапазон цветов RGB. Значение состояния по умолчанию — 0 (полный диапазон).

Значение Значение
0
Полный диапазон (0–255).
1
Ограниченный диапазон (16–235).

YCbCr_Matrix

Задает матрицу передачи YCbCr. Значение состояния по умолчанию — 0 (BT.601).

Значение Значение
0
ITU-R BT.601.
1
ITU-R BT.709.

YCbCr_xvYCC

Указывает, использует ли входной поток обычный YCbCr или расширенный YCbCr (xvYCC). Значение состояния по умолчанию — 0 (обычный YCbCr).

Значение Значение
0
Обычный YCbCr.
1
Расширенный YCbCr (xvYCC).

Reserved

Value

Комментарии

Элемент RGB_Range применяется к входным данным RGB, а члены YCbCr_Matrix и YCbCr_xvYCC применяются к входным данным YCbCr (YUV).

В некоторых ситуациях устройство может выполнять промежуточное преобразование цвета во входном потоке. В этом случае используются флаги, применяемые к обоим цветовым пространствам. Например, предположим, что устройство преобразуется из RGB в YCbCr. Если элемент RGB_Range равен 0, а элемент YCbCr_Matrix равен 1, устройство преобразуется из полного диапазона RGB в BT.709 YCbCr.

Если устройство поддерживает формат xvYCC, оно возвращает флаг возможности DXVAHD_DEVICE_CAPS_xvYCC в элементе DeviceCapsструктуры DXVAHD_VPDEVCAPS . В противном случае устройство игнорирует значение YCbCr_xvYCC и обрабатывает все входные данные YCbCr как обычные YCbCr. Чтобы получить возможности устройства, вызовите IDXVAHD_Device::GetVideoProcessorDeviceCaps.

Примеры

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

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть dxvahd.h

См. также раздел

DXVA-HD

DXVAHD_STREAM_STATE

Видеоструктуры Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

Структуры Media Foundation