структура 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) |