структура KS_VIDEOINFOHEADER2 (ksmedia.h)
Структура KS_VIDEOINFOHEADER2 описывает сведения о видеопотоке, включая параметры боба или ткать, защиту копирования и пропорции пикселей.
Синтаксис
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
Члены
rcSource
Указывает прямоугольник с вырезкой, который выбирает часть активного видеосигнала для использования.
rcTarget
Задает прямоугольник, указывающий, какую часть целевого буфера следует использовать.
dwBitRate
Указывает значение, указывающее соответствующую скорость передачи данных видеопотока в битах в секунду.
dwBitErrorRate
Указывает значение, указывающее частоту ошибок данных видеопотока в битовых ошибках в секунду.
AvgTimePerFrame
Указывает среднее время на кадр в единицах 100-nanosecond.
dwInterlaceFlags
Указывает сведения о переплете. Неопределенные флаги должны быть равны нулю, или подключение может быть отклонено. Этот элемент можно задать для одного или нескольких (логических ИЛИ) значений, определенных в ksmedia.h:
Флаг | Описание |
---|---|
KS_INTERLACE_IsInterlaced | Указывает поток переплета. Если значение 0, то другие KS_INTERLACE_Xxx биты не имеют значения. |
KS_INTERLACE_1FieldPerSample | Указывает одно поле на образец носителя. Если значение равно нулю, указывает два поля для каждого примера мультимедиа. |
KS_INTERLACE_Field1First | Указывает, что поле 1 является первым. Если ноль, указывает, что поле 2 является первым. Верхней областью в PAL является поле 1, верхней областью в NTSC является Поле 2. |
KS_INTERLACE_UNUSED | Неиспользованный |
KS_INTERLACE_FieldPatternMask | Указывает биты, используемые для указания шаблона поля. |
KS_INTERLACE_FieldPatField1Only | Указывает, что поток никогда не содержит поле 2. |
KS_INTERLACE_FieldPatField2Only | Указывает, что поток никогда не содержит поле 1. |
KS_INTERLACE_FieldPatBothRegular | Указывает, что для каждого поля 1 будет поле 2. |
KS_INTERLACE_FieldPatBothIrregular | Указывает случайный шаблон поля 1 и поля 2. |
KS_INTERLACE_DisplayModeMask | Недопустимо для записи видео. |
KS_INTERLACE_DisplayModeBobOnly | Недопустимо для записи видео. |
KS_INTERLACE_DisplayModeWeaveOnly | Недопустимо для записи видео. |
KS_INTERLACE_DisplayModeBobOrWeave | Недопустимо для записи видео. |
dwCopyProtectFlags
Указывает значение KSCOPYPROTECTRestrictDuplication (0x00000001), указывающее, следует ли ограничить дублирование потока. Если не определено, укажите ноль или подключение будет отклонено.
dwPictAspectRatioX
Задает измерение x измерения пропорций изображения (например, 16 для отображения 16 × 9). Значение выражается в дюймах по дюймам, а не пикселям по пикселям.
dwPictAspectRatioY
Указывает y измерение пропорции изображения (например, 9 для отображения 16 × 9). Значение выражается в дюймах по дюймам, а не пикселям по пикселям.
dwControlFlags
В операционных системах до Windows Vista этот элемент был назван dwReserved1 и должен был быть ноль. В Windows Vista dwReserved1 объединились в союзе с новым членом с именем dwControlFlags. Если используется, dwControlFlags содержит побитовое ЗНАЧЕНИЕ ИЛИ флагов в следующей таблице.
Ценность | Описание |
---|---|
AMCONTROL_USED | Указывает, что используются флаги dwControlFlags. |
AMCONTROL_PAD_TO_4x3 | Изображение должно быть заполнено и отображаться в области 4 x 3. |
AMCONTROL_PAD_TO_16x9 | Изображение должно быть заполнено и отображаться в области 16 x 9. |
AMCONTROL_COLORINFO_PRESENT | Дополнительные сведения о цвете содержатся в верхних 24 битах поля dwControlFlags. |
Флаг AMCONTROL_USED обеспечивает обратную совместимость со старыми фильтрами. Если флаг AMCONTROL_USED не задан, остальные биты в этом поле следует игнорировать. Если фильтр использует другие флаги, он должен задать флаг AMCONTROL_USED.
Два флага AMCONTROL_PAD_xxx используются декодаторами для определения пропорций выходного прямоугольника.
Если установлен флаг AMCONTROL_COLORINFO_PRESENT, это означает, что верхние 24 бита поля dwControlFlags обрабатываются как структура DXVA_ExtendedFormat.
Дополнительные сведения о dwControlFlagsсм. в разделе "Примечания".
dwReserved1
Этот элемент предназначен для обратной совместимости. Дополнительные сведения см. в dwControlFlags.
dwReserved2
Зарезервировано для использования системы. Должно быть установлено равно нулю или подключение будет отклонено.
bmiHeader
Указывает KS_BITMAPINFOHEADER структуру, содержащую сведения о цвете и измерении для растрового изображения видео.
Замечания
Чтобы описать видеопоток без параметров боба или ткать, используйте KS_VIDEOINFOHEADER.
Структура KS_VIDEOINFOHEADER2 идентична структуре DirectShow VIDEOINFOHEADER2.
Захват мини-drivers, создающих поля видео (вместо кадров), должен использовать структуру KS_DATARANGE_VIDEO2, содержащую структуру KS_VIDEOINFOHEADER2.
Исходный фильтр может запросить, чтобы фильтр приемника принимает только раздел видео, предоставляя значения, которые эффективно определяют прямоугольник обрезки в элементе rcSource. Однако если фильтр приемника не проверяет наличие прямоугольника обрезки при подключении, фильтр приемника просто отрисовывает все видео, эффективно игнорируя все данные обрезки, передаваемые из исходного фильтра в фильтр приемника.
В идеале фильтр приемника проверяет rcSource и если фильтр приемника не поддерживает извлечение изображений, а прямоугольник не пустым, то он отклоняет подключение. Фильтр должен использовать функцию Win32 SetRectEmpty для сброса прямоугольника на все нули (и задать IsRectEmpty для последующей проверки прямоугольника).
Элемент rcTarget указывает прямоугольник назначения для видео. Большинство исходных фильтров задают для этого элемента все нули. Нижестоящий фильтр может запросить, чтобы видео было помещено в определенную область буферов, которые он предоставляет. В этом случае он вызывает функцию Win32 QueryAccept с целевым объектом nonempty.
Если флаг AMCONTROL_COLORINFO_PRESENT задан в элементе dwControlFlags, можно привести значение dwControlFlags в структуру DXVA_ExtendedFormat для доступа к расширенным сведениям о цвете. Дополнительные сведения см. в VIDEOINFOHEADER2.
Требования
Требование | Ценность |
---|---|
заголовка | ksmedia.h (include Ksmedia.h) |