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