структура 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
Указывает количество допустимых поверхностей, передаваемых в массиве источника.
Alpha
Указывает прозрачность выходного изображения по мере записи в целевую область. Значение 0.0F указывает прозрачный. Значение 1.0F указывает на непрозрачность.
Source[MAX_DEINTERLACE_SURFACES]
Массив DXVA_VideoSample структур, указывающих эталонные входные образцы, необходимые для этой операции деинтерлакации или преобразования частоты кадров.
Замечания
При создании одного кадра из одного поля в примере, как определено в структуре DXVA_VideoSample, rtTarget должно быть начальным временем отображения этого поля. Если у вас есть два поля в одном примере и хотите деинтерлакировать оба, DeinterlaceBlt будет вызываться дважды. При первом вызове DeinterlaceBltrtTarget будет начальным временем отображения. Во второй раз вызывается DeinterlaceBlt, rtTarget будет серединой между временем начала отображения и конечным временем отображения. Другими словами, для первого вызова rtTarget = rtStart. Для второго вызова rtTarget = (rtStart + rtEnd) / 2.
Требования
Требование | Ценность |
---|---|
заголовка | dxva.h (include Dxva.h) |