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


структура KS_VIDEO_STREAM_CONFIG_CAPS (ksmedia.h)

Структура KS_VIDEO_STREAM_CONFIG_CAPS описывает конфигурацию и возможности видеопотока, включая аналоговый стандарт видео (например, NTSC, PAL или SECAM), масштабирование и обрезку; минимальные и максимальные частоты кадров; и минимальные и максимальные частоты данных.

Синтаксис

typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
  GUID     guid;
  ULONG    VideoStandard;
  SIZE     InputSize;
  SIZE     MinCroppingSize;
  SIZE     MaxCroppingSize;
  int      CropGranularityX;
  int      CropGranularityY;
  int      CropAlignX;
  int      CropAlignY;
  SIZE     MinOutputSize;
  SIZE     MaxOutputSize;
  int      OutputGranularityX;
  int      OutputGranularityY;
  int      StretchTapsX;
  int      StretchTapsY;
  int      ShrinkTapsX;
  int      ShrinkTapsY;
  LONGLONG MinFrameInterval;
  LONGLONG MaxFrameInterval;
  LONG     MinBitsPerSecond;
  LONG     MaxBitsPerSecond;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;

Члены

guid

GUID, указывающий тип формата видео. Возможные значения:

  • KSDATAFORMAT_SPECIFIER_VIDEOINFO

  • KSDATAFORMAT_SPECIFIER_VIDEOINFO2

  • KSDATAFORMAT_SPECIFIER_ANALOGVIDEO

  • KSDATAFORMAT_SPECIFIER_VBI

  • KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO

  • KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO

Этот GUID идентичен перечислению DirectShow AM_MEDIA_TYPE. Дополнительные сведения о AM_MEDIA_TYPE см. в документации по пакету SDK DirectX.

VideoStandard

Указывает аналоговые стандарты видео, поддерживаемые потоком. Этот элемент можно задать для одного или нескольких (логически ORed) значений из перечисления KS_AnalogVideoStandard.

InputSize

Указывает размер входящего сигнала. InputSize указывает ширину и высоту прямоугольника изображения в пикселях. Это самый большой сигнал о том, что фильтр может оцифровать каждый пиксель, оставшийся уникальным.

MinCroppingSize

Указывает наименьший допустимый прямоугольник обрезки, как указано в элементе rcSource структуры KS_VIDEOINFOHEADER, связанной с элементом DataRange.

MaxCroppingSize

Указывает самый большой прямоугольник обрезки, как указано в элементе rcSource структуры KS_VIDEOINFOHEADER, связанной с элементом DataRange.

CropGranularityX

Указывает горизонтальную детализацию размера обрезки. Например, допустимые ширины можно указать даже несколько из четырех.

CropGranularityY

Указывает вертикальную детализацию размера обрезки. Например, допустимые высоты можно указать как даже несколько из четырех.

CropAlignX

Указывает горизонтальное выравнивание прямоугольника обрезки внутри InputSize. Например, мини-driver может указать, что допустимые прямоугольники должны начинаться на границе, которая имеет несколько четырех.

CropAlignY

Указывает вертикальное выравнивание прямоугольника обрезки внутри InputSize. Например, мини-driver может указать, что допустимые прямоугольники должны начинаться на границе, которая имеет несколько четырех.

MinOutputSize

Указывает наименьшее растровое изображение, которое может создать этот пин-код.

MaxOutputSize

Указывает наибольшее растровое изображение, которое может создать этот пин-код.

OutputGranularityX

Указывает степень детализации ширины выходного растрового изображения.

OutputGranularityY

Указывает степень детализации высоты выходного растрового изображения.

StretchTapsX

Указывает одно из следующих значений, чтобы указать, насколько хорошо фильтр может растянуть ширину изображения.

Ценность Значение
0 Фильтр не может растянуться.
1 Фильтр использует удвоение пикселей для достижения растяжения.
2 Фильтр использует интерполяцию (2 касания).
3 Фильтр использует более упорядоченную (более гладкую) форму интерполяции.

StretchTapsY

Указывает одно из следующих значений, чтобы указать, насколько хорошо фильтр может растянуть высоту изображения.

Ценность Значение
0 Фильтр не может растянуться.
1 Фильтр использует удвоение пикселей для достижения растяжения.
2 Фильтр использует интерполяцию (2 касания).
3 Фильтр использует более упорядоченную (более гладкую) форму интерполяции.

ShrinkTapsX

Указывает одно из следующих значений, чтобы указать, насколько хорошо фильтр может уменьшить ширину изображения.

Ценность Значение
0 Фильтр не может сжаться.
1 Фильтр устраняет некоторые строки пикселей, чтобы добиться сжатия.
2 Фильтр использует интерполяцию (2 касания).
3 Фильтр использует более упорядоченную (более гладкую) форму интерполяции.

ShrinkTapsY

Указывает одно из следующих значений, чтобы указать, насколько хорошо фильтр может уменьшить высоту изображения.

Ценность Значение
0 Фильтр не может сжаться.
1 Фильтр устраняет некоторые столбцы пикселей, чтобы добиться сжатия.
2 Фильтр использует интерполяцию (2 касания).
3 Фильтр использует более упорядоченную (более гладкую) форму интерполяции.

MinFrameInterval

Указывает минимальную частоту кадров. Это значение применяется только к фильтрам записи.

MaxFrameInterval

Указывает максимальную частоту кадров. Это значение применяется только к фильтрам записи.

MinBitsPerSecond

Указывает минимальную скорость данных в битах в секунду, которую может создать этот пин-код.

MaxBitsPerSecond

Указывает максимальную скорость данных в битах в секунду, которую может создать этот пин-код.

Замечания

Структура KS_VIDEO_STREAM_CONFIG_CAPS идентична структуре DirectShow VIDEO_STREAM_CONFIG_CAPS.

Важно понимать связи между членами этой структуры. Например, предположим, что для некоторых элементов структуры используются следующие значения:

MinCroppingSize = (160, 120)

MaxCroppingSize = (320, 240)

CropGranularityX = 4

CropGranularityY = 8

Эти значения указывают на то, что допустимые размеры обрезки начинаются с MinCroppingSize и увеличивают шаги в x-направление по CropGranularityX и в y-направление по CropGranularityY. В этом случае значение x-value может быть в любом месте от 160 до 320 пикселей, в шагах четырех, а y-value может находиться в любом месте от 120 до 240 пикселей в шагах восьми.

В примере сценария несколько допустимых размеров:

  • 160 × 120, 164 × 120, 168 × 120, 172 × 120 и т. д.

  • 160 × 128, 164 × 128, 168 × 128, 172 × 128 и т. д.

  • 160 × 136, 164 × 136, 168 × 136, 172 × 136 и т. д.

CropAlignX и CropAlignY указать, где прямоугольник обрезки может находиться внутри прямоугольника размера ввода. Учитывая прямоугольник × 120 × 120 и значение 2 для CropAlignX и значение 4 для CropAlignY, некоторые из допустимых значений для rcSource член структуры KS_VIDEOINFOHEADER будет:

  • (0, 0, 160, 120)

  • (2, 0, 162, 120)

  • (2, 4, 162, 124)

  • (2, 8, 162, 128)

Для прямоугольника 320 × 240 обрезки и одинаковых значений выравнивания обрезки (2, 4, 322, 244) является одним из примеров множества допустимых прямоугольников.

MinCroppingSize, MaxCroppingSize, CropGranularityX, CropGranularityY, Обрезкаи элементы CropAlignY, описанные выше, работают вместе, чтобы указать, какие значения rcSource допустимы для структуры KS_VIDEOINFOHEADER, описывающей тип носителя выходного пина. Остальные члены структуры (MinOutputSize, MaxOutputSize, OutputGranularityXи OutputGranularityY) описывают biWidth и членов структуры KS_BITMAPINFOHEADER, который содержится в типе носителя пин-кода KS_VIDEOINFOHEADER структуре.

Требования

Требование Ценность
заголовка ksmedia.h (include Ksmedia.h)

См. также

KS_AnalogVideoStandard

KS_BITMAPINFOHEADER

KS_VIDEOINFOHEADER