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


структура 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. Например, мини-диск может указать, что допустимые прямоугольники должны начинаться с границы, которая кратна четырем.

CropAlignY

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

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 может быть от 160 до 320 пикселей в четырех шагах, а значение y может быть в любом месте от 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 указывают, где прямоугольник обрезки может находиться внутри прямоугольника входного размера. Учитывая прямоугольник обрезки 160 × 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, CropAlignX и CropAlignY, описанные выше, работают вместе, чтобы указать, какие значения rcSource допустимы для структуры KS_VIDEOINFOHEADER, описывающей тип носителя выходного контакта. Остальные члены структуры (MinOutputSize, MaxOutputSize, OutputGranularityX и OutputGranularityY) описывают элементы biWidth и biHeight структуры KS_BITMAPINFOHEADER , которая содержится в типе носителя контакта KS_VIDEOINFOHEADER структуре.

Требования

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

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

KS_AnalogVideoStandard

KS_BITMAPINFOHEADER

KS_VIDEOINFOHEADER