структура 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
Синтаксис
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
Указывает, насколько хорошо фильтр может сжимать изображение по вертикали.
MinFrameInterval
Минимальная длительность кадра в единицах 100 наносекунд. Это значение применяется только к фильтрам записи.
MaxFrameInterval
Максимальная длительность кадра в единицах 100 наносекунд. Это значение применяется только к фильтрам записи.
MinBitsPerSecond
Минимальная скорость передачи данных, с помощью этого контакта.
MaxBitsPerSecond
Максимальная скорость передачи данных, с помощью этого контакта.
Комментарии
Метод IAMStreamConfig::GetStreamCaps возвращает эту структуру. Приложение может использовать эти сведения для изменения формата вывода в фильтре сжатия видео или фильтре захвата видео.
Например, предположим, что фильтр возвращает следующие значения для исходного прямоугольника:
- MinCroppingSize = (160, 120)
- MaxCroppingSize = (320, 240)
- CropGranularityX = 4
- CropGranularityY = 8
- CropAlignX = 2
- CropAlignY = 4
Элементы CropAlignX и CropAlignY определяют, где может находиться левый верхний угол исходного прямоугольника. Например, следующие прямоугольники являются допустимыми с учетом предыдущих значений:
- (0, 0, 160, 120)
- (2, 0, 162, 120)
- (2, 8, 162, 128)
Для фильтров захвата члены MinFrameInterval и MaxFrameInterval определяют минимальную и максимальную длительность каждого кадра, как указано в элементе AvgTimePerFrame структуры VIDEOINFOHEADER или VIDEOINFOHEADER2 . Фильтр может не поддерживать все частоты кадров, которые попадают между этими двумя значениями. Метод IAMStreamConfig::SetFormat задает частоту кадров для ближайшего значения, которое поддерживает фильтр. Если SetFormat выполняется успешно, вызовите IAMStreamConfig::GetFormat , чтобы определить фактическую частоту кадров.
Требования
Верхняя часть | strmif.h (включая Dshow.h) |