структура 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-наносекундных единицах.

dwInterlaceFlags

Указывает сведения о переплетении. Неопределенные флаги должны быть равны нулю, иначе подключение может быть отклонено. Для этого элемента можно задать одно или несколько (логических ИЛИ) значений, определенных в ksmedia.h:

Flag Описание
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 , содержащую сведения о цвете и измерении для растрового изображения видео.

Комментарии

Чтобы описать видеопоток без параметров bob или плетения, используйте KS_VIDEOINFOHEADER.

Структура KS_VIDEOINFOHEADER2 идентична структуре DirectShow VIDEOINFOHEADER2 .

Мини-накопители захвата, создающие поля видео (а не кадры), должны использовать структуру KS_DATARANGE_VIDEO2 , которая содержит структуру KS_VIDEOINFOHEADER2.

Исходный фильтр может запросить, чтобы фильтр приемника принимает только часть видео, предоставляя значения, которые фактически определяют прямоугольник обрезки в элементе rcSource . Однако если фильтр приемника не проверка для прямоугольника обрезки при подключении, фильтр приемника просто отрисовывает все видео, фактически игнорируя любые сведения об вырезке, передаваемые из исходного фильтра в фильтр приемника.

В идеале фильтр приемника проверяет rcSource и, если фильтр приемника не поддерживает извлечение изображения, а прямоугольник не пуст, он отклоняет подключение. Фильтр должен использовать функцию Win32 SetRectEmpty, чтобы сбросить прямоугольник до всех нулей (и задать isRectEmpty для последующего проверка прямоугольника).

Член rcTarget указывает целевой прямоугольник для видео. Большинство исходных фильтров устанавливают для этого элемента все нули. Подчиненный фильтр может запросить размещение видео в определенной области буферов, которые он предоставляет. В этом случае он вызывает функцию Win32 QueryAccept с непустой целью.

Если флаг AMCONTROL_COLORINFO_PRESENT задан в элементе dwControlFlags , можно привести значение dwControlFlags к DXVA_ExtendedFormat структуре для доступа к расширенным сведениям о цвете. Дополнительные сведения см. в разделе VIDEOINFOHEADER2.

Требования

Требование Значение
Заголовок ksmedia.h (включая Ksmedia.h)

См. также раздел

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER