структура DXVA_DeinterlaceBlt (dxva.h)
Структура DXVA_DeinterlaceBlt отправляется vmr в ускоритель для указания параметров преобразования деинтерлейки или частоты кадров для передачи битовых блоков.
Синтаксис
typedef struct _DXVA_DeinterlaceBlt {
DWORD Size;
DWORD Reserved;
REFERENCE_TIME rtTarget;
RECT DstRect;
RECT SrcRect;
DWORD NumSourceSurfaces;
FLOAT Alpha;
DXVA_VideoSample Source[MAX_DEINTERLACE_SURFACES];
} DXVA_DeinterlaceBlt;
Члены
Size
Задает размер этой структуры в байтах.
Reserved
rtTarget
Определяет расположение выходного кадра в последовательности входных кадров. Если выполняется только деинтерлейка, целевое время должно совпадать либо со временем начала отображения эталонного образца, как определено в структуре DXVA_VideoSample , либо с серединой между начальным и конечным временем отображения. Дополнительные сведения см. в подразделе "Примечания".
Если запрашивается преобразование частоты кадров, время rtTarget может отличаться от любого времени rtStart в эталонных примерах.
DstRect
Задает структуру RECT , описывающую верхнюю левую и нижнюю правые точки прямоугольника на целевой поверхности. Эти точки определяют область, в которой должна происходить передача битовых блоков, и ее положение на целевой поверхности.
SrcRect
Задает структуру RECT , описывающую верхнюю левую и нижнюю правые точки прямоугольника на исходной поверхности. Эти точки определяют область исходных данных для передачи битового блока и его положение на поверхности источника.
NumSourceSurfaces
Указывает количество допустимых поверхностей, переданных в массиве Source .
Alpha
Указывает прозрачность выходного изображения при его записи в область назначения. Значение 0,0F указывает на прозрачность. Значение 1.0F указывает на непрозрачность.
Source[MAX_DEINTERLACE_SURFACES]
Массив DXVA_VideoSample структур, указывающих образцы ссылочных входных данных, необходимые для этой операции деинтерлейки или преобразования частоты кадров.
Комментарии
При создании одного кадра из одного поля в образце, как определено в структуре DXVA_VideoSample , rtTarget должен быть начальным временем отображения для этого поля. Если в одном образце есть два поля и вы хотите выполнить деинтерлейку обоих полей, DeinterlaceBlt будет вызываться дважды. При первом вызове DeinterlaceBltrtTarget будет начальным временем отображения. При втором вызове DeinterlaceBltrtTarget будет средней точкой между начальным и конечным временем отображения. Другими словами, для первого вызова — rtTarget = rtStart. Для второго вызова : rtTarget = (rtStart + rtEnd) / 2.
Требования
Требование | Значение |
---|---|
Заголовок | dxva.h (включая Dxva.h) |