Поделиться через


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

Содержит потоковые данные для метода IDXVAHD_VideoProcessor::VideoProcessBltHD .

Синтаксис

typedef struct _DXVAHD_STREAM_DATA {
  BOOL              Enable;
  UINT              OutputIndex;
  UINT              InputFrameOrField;
  UINT              PastFrames;
  UINT              FutureFrames;
  IDirect3DSurface9 **ppPastSurfaces;
  IDirect3DSurface9 *pInputSurface;
  IDirect3DSurface9 **ppFutureSurfaces;
} DXVAHD_STREAM_DATA;

Члены

Enable

Указывает, включен ли этот входной поток. Если значение равно TRUE, метод VideoProcessBltHD преобразует этот поток в выходную поверхность. В противном случае поток не будет перерезан. Максимальное количество потоков, которые можно включить одновременно, предоставляется в элементе MaxInputStreamsструктуры DXVAHD_VPDEVCAPS .

OutputIndex

Отсчитываемый от нуля номер индекса выходного кадра. См. заметки.

InputFrameOrField

Отсчитываемый от нуля номер индекса входного кадра или поля. См. заметки.

PastFrames

Количество прошлых опорных кадров. Это значение должно быть меньше или равно значению элемента PastFramesструктуры DXVAHD_VPCAPS .

FutureFrames

Число будущих опорных кадров. Это значение должно быть меньше или равно значению элемента FutureFrames структуры DXVAHD_VPCAPS .

ppPastSurfaces

Указатель на массив указателей IDirect3DSurface9 , выделенный вызывающим объектом. Этот массив содержит прошлые опорные кадры для операции обработки видео. Количество элементов в массиве равно значению элемента PastFrames .

pInputSurface

Указатель на интерфейс IDirect3DSurface9 поверхности Microsoft Direct3D, содержащей текущий входной кадр.

ppFutureSurfaces

Указатель на массив указателей IDirect3DSurface9 , выделенный вызывающим объектом. Этот массив содержит будущие опорные кадры для операции обработки видео. Количество элементов в массиве равно значению элемента FutureFrames .

Комментарии

Входные поверхности

Поверхности Direct3D должны быть выделены в пуле памяти, указанном элементом InputPoolструктуры DXVAHD_VPDEVCAPS . Можно использовать следующие типы поверхностей: Прошлые и будущие опорные кадры должны размещаться в массивах в темпорочном порядке, от самых старых к новым. Например, если T является текущим входным кадром, массивы будут упорядочены следующим образом:
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
Структура DXVAHD_VPCAPS указывает количество опорных кадров, необходимых для достижения наилучшего качества деинтернтерлейсинга. Если приложение предоставляет меньше опорных кадров, устройство вернется к более простым алгоритмам деинтерлейсинга. Если эталонные кадры не указаны, устройство может использовать деинтерлейсинг Bob. Ниже приведены некоторые случаи, когда приложение может предоставлять меньше ссылочных кадров.
  • В начале или конце последовательности видео
  • С прогрессивным вводом
  • При переходе между прогрессивным и чередующийся входными данными
  • Для подпотока, который не требует высокого качества деинтернтерлейсинга
  • При удалении кадров

Входные и выходные индексы

Элементы OutputIndex и InputFrameOrField используются для корреляции входных кадров или полей с выходными кадрами. Значение элемента OutputIndex является циклическим и сбрасывается до нуля после каждого цикла.

Ниже приведены некоторые примеры шаблонов.

  • Прогрессивное видео с нормальной скоростью. Каждый входной кадр создает один выходной кадр.
    • Выходной индекс: 0, 0, 0, 0, ...
    • Входной индекс: 0, 1, 2, 3, ...
  • Чередование видео с нормальной скоростью. Каждый чередуемый кадр (два поля) создает два выходных кадра.
    • Выходной индекс: 0, 1, 0, 1, ...
    • Входной индекс: 0, 1, 2, 3, ...
  • Прогрессивное видео с частотой вывода 2/1. Каждый входной кадр создает один выходной кадр.
    • Выходной индекс: 0, 1, 0, 1, ...
    • Входной индекс: 0, 1, 2, 3, ...
  • Чередуется видео со скоростью вывода 1/2. Каждый чередуемый кадр создает один выходной кадр. (Два поля смешиваются для создания одного кадра.)
    • Выходной индекс: 0, 0, 0, 0, ...
    • Входной индекс: 0, 2, 4, 6, ...

Требования

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

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

DXVA-HD

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

Структуры Media Foundation