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


структура VIDEO_STREAM_CONFIG_CAPS (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Структура VIDEO_STREAM_CONFIG_CAPS описывает ряд форматов видео. Фильтры сжатия и захвата видео используют эту структуру для описания форматов, которые они могут создавать.

Примечание Большая часть этой структуры является нерекомендуемой, за исключением следующих элементов структуры:
  • guid
  • VideoStandard
  • MinFrameInterval
  • MaxFrameInterval
Приложения могут использовать MinFrameInterval и MaxFrameInterval для получения диапазона поддерживаемой частоты кадров с устройства захвата видео. Приложения не должны использовать другие элементы этой структуры. Вместо этого используйте структуру AM_MEDIA_TYPE , возвращаемую методом IAMStreamConfig::GetFormat .
 

Синтаксис

typedef struct _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;
} VIDEO_STREAM_CONFIG_CAPS;

Члены

guid

GUID , идентифицирующий тип формата. Например, FORMAT_VideoInfo или FORMAT_VideoInfo2. Дополнительные сведения см. в разделе Элемент formattype структуры AM_MEDIA_TYPE .

VideoStandard

Поддерживается стандарт аналогового видео. Значение представляет собой побитовое сочетание флагов из типа перечисления AnalogVideoStandard или нуль.

InputSize

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

Примечание Устаревшие.
 

MinCroppingSize

Наименьший допустимый исходный прямоугольник. Исходный прямоугольник определяется в элементе rcSource структуры VIDEOINFOHEADER или VIDEOINFOHEADER2 .

Примечание Устаревшие.
 

MaxCroppingSize

Максимальный допустимый исходный прямоугольник.

Примечание Устаревшие.
 

CropGranularityX

Горизонтальная степень детализации исходного прямоугольника. Это значение указывает допустимые приращения между MinCroppingSize и MaxCroppingSize.

Примечание Устаревшие.
 

CropGranularityY

Вертикальная гранулярность исходного прямоугольника. Это значение указывает допустимые приращения между MinCroppingSize и MaxCroppingSize.

Примечание Устаревшие.
 

CropAlignX

Обязательное горизонтальное выравнивание исходного прямоугольника.

Примечание Устаревшие.
 

CropAlignY

Обязательное вертикальное выравнивание исходного прямоугольника.

Примечание Устаревшие.
 

MinOutputSize

Минимальный размер выходных данных.

Примечание Устаревшие.
 

MaxOutputSize

Максимальный размер выходных данных.

Примечание Устаревшие.
 

OutputGranularityX

Степень детализации ширины выходных данных. Это значение указывает допустимые приращения между MinOutputSize и MaxOutputSize.

Примечание Устаревшие.
 

OutputGranularityY

Степень детализации высоты выходных данных. Это значение указывает допустимые приращения между MinOutputSize и MaxOutputSize.

Примечание Устаревшие.
 

StretchTapsX

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

Примечание Устаревшие.
 

StretchTapsY

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

Примечание Устаревшие.
 

ShrinkTapsX

Указывает, насколько хорошо фильтр может сжимать изображение по горизонтали.

Примечание Устаревшие.
 

ShrinkTapsY

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

Примечание Устаревшие.
 
В предыдущих четырех элементах структуры используются следующие значения:
Значение Значение
0
Не поддерживает растяжение и сжатие.
1
Использует удвоение пикселей (растяжение) или исключение пикселей (сжатие)
2
Использует интерполяцию (2 касания)
3 и выше
Использует интерполяцию (>2 касания)

MinFrameInterval

Минимальная длительность кадра в единицах 100 наносекунд. Это значение применяется только к фильтрам записи.

MaxFrameInterval

Максимальная длительность кадра в единицах 100 наносекунд. Это значение применяется только к фильтрам записи.

MinBitsPerSecond

Минимальная скорость передачи данных, с помощью этого контакта.

Примечание Устаревшие.
 

MaxBitsPerSecond

Максимальная скорость передачи данных, с помощью этого контакта.

Примечание Устаревшие.
 

Комментарии

Метод IAMStreamConfig::GetStreamCaps возвращает эту структуру. Приложение может использовать эти сведения для изменения формата вывода в фильтре сжатия видео или фильтре захвата видео.

Например, предположим, что фильтр возвращает следующие значения для исходного прямоугольника:

  • MinCroppingSize = (160, 120)
  • MaxCroppingSize = (320, 240)
  • CropGranularityX = 4
  • CropGranularityY = 8
  • CropAlignX = 2
  • CropAlignY = 4
Эти числа определяют набор прямоугольников, допустимых для элемента rcSource структуры VIDEOINFOHEADER или VIDEOINFOHEADER2 . В этом примере минимальный исходный прямоугольник имеет ширину 160 пикселей x 120 пикселей в высоту. Ширина может быть увеличена с шагом 4 пикселя, максимум до 320. Высоту можно увеличить с шагом 8 пикселей до 240 пикселей. Другими словами, допустимые ширины 160, 164, 168 ... 320; и допустимые высоты 120, 128, 136 ... 240.

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

  • (0, 0, 160, 120)
  • (2, 0, 162, 120)
  • (2, 8, 162, 128)
Аналогичным образом члены MinOutputSize, MaxOutputSize, OutputGranularityX и OutputGranularityY определяют, какие значения поддерживаются для членов biWidth и biHeight структуры BITMAPINFOHEADER .

Для фильтров захвата члены MinFrameInterval и MaxFrameInterval определяют минимальную и максимальную длительность каждого кадра, как указано в элементе AvgTimePerFrame структуры VIDEOINFOHEADER или VIDEOINFOHEADER2 . Фильтр может не поддерживать все частоты кадров, которые попадают между этими двумя значениями. Метод IAMStreamConfig::SetFormat задает частоту кадров для ближайшего значения, которое поддерживает фильтр. Если SetFormat выполняется успешно, вызовите IAMStreamConfig::GetFormat , чтобы определить фактическую частоту кадров.

Требования

   
Верхняя часть strmif.h (включая Dshow.h)

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

Структуры DirectShow