структура 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 . Можно использовать следующие типы поверхностей:- Поверхность видео типа DXVAHD_SURFACE_TYPE_VIDEO_INPUT или DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE. См . раздел IDXVAHD_Device::CreateVideoSurface.
- Поверхность целевого объекта отрисовки декодера типа DXVA2_VideoDecoderRenderTarget. См. раздел IDirectXVideoAccelerationService::CreateSurface.
- Обычная поверхность вне экрана.
- ppPastSurfaces: { ..., T-3, T-2, T-1 }
- ppInputSurface: T
- ppFutureSurfaces: { T+1, T+2, T+3, ... }
- В начале или конце последовательности видео
- С прогрессивным вводом
- При переходе между прогрессивным и чередующийся входными данными
- Для подпотока, который не требует высокого качества деинтернтерлейсинга
- При удалении кадров
Входные и выходные индексы
Элементы 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 |