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


структура 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)

См. также

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER