estrutura KS_VIDEO_STREAM_CONFIG_CAPS (ksmedia.h)
A estrutura KS_VIDEO_STREAM_CONFIG_CAPS descreve a configuração e os recursos de um fluxo de vídeo, incluindo o padrão de vídeo analógico (por exemplo, NTSC, PAL ou SECAM), recursos de dimensionamento e corte; taxas de quadros mínimas e máximas; e taxas de dados mínimas e máximas.
Sintaxe
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;
Membros
guid
GUID que especifica o tipo de formato de vídeo. Os valores possíveis incluem:
KSDATAFORMAT_SPECIFIER_VIDEOINFO
KSDATAFORMAT_SPECIFIER_VIDEOINFO2
KSDATAFORMAT_SPECIFIER_ANALOGVIDEO
KSDATAFORMAT_SPECIFIER_VBI
KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO
KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO
Esse GUID é idêntico à enumeração AM_MEDIA_TYPE DirectShow. Para obter mais informações sobre AM_MEDIA_TYPE, consulte a documentação do SDK do DirectX.
VideoStandard
Especifica os padrões de vídeo analógicos compatíveis com o fluxo. Esse membro pode ser definido como um ou mais valores (logicamente ORed) da enumeração KS_AnalogVideoStandard .
InputSize
Especifica o tamanho do sinal de entrada. InputSize indica a largura e a altura do retângulo da imagem, em pixels. Esse é o maior sinal que o filtro pode digitalizar com cada pixel restante exclusivo.
MinCroppingSize
Especifica o menor retângulo de corte permitido, conforme especificado no membro rcSource da estrutura KS_VIDEOINFOHEADER , que está associado ao membro DataRange .
MaxCroppingSize
Especifica o maior retângulo de corte permitido, conforme especificado no membro rcSource da estrutura KS_VIDEOINFOHEADER, que está associado ao membro DataRange .
CropGranularityX
Especifica a granularidade horizontal do tamanho do corte. Por exemplo, larguras válidas podem ser especificadas como múltiplos de quatro.
CropGranularityY
Especifica a granularidade vertical do tamanho do corte. Por exemplo, alturas válidas podem ser especificadas como múltiplos de quatro.
CropAlignX
Especifica o alinhamento horizontal do retângulo de corte dentro de InputSize. Por exemplo, o minidriver pode especificar que retângulos válidos devem começar em um limite que seja um múltiplo de quatro.
CropAlignY
Especifica o alinhamento vertical do retângulo de corte dentro de InputSize. Por exemplo, o minidriver pode especificar que retângulos válidos devem começar em um limite que seja um múltiplo de quatro.
MinOutputSize
Especifica o menor bitmap que esse pino pode produzir.
MaxOutputSize
Especifica o maior bitmap que esse pino pode produzir.
OutputGranularityX
Especifica a granularidade da largura do bitmap de saída.
OutputGranularityY
Especifica a granularidade da altura do bitmap de saída.
StretchTapsX
Especifica um dos valores a seguir para indicar o quão bem o filtro pode ampliar a largura da imagem.
Valor | Significado |
---|---|
0 | O filtro não pode ser estendido. |
1 | O filtro usa duplicação de pixel para obter alongamento. |
2 | O filtro usa interpolação (2 toques). |
3 | O filtro usa uma forma de interpolação de ordem superior (mais suave). |
StretchTapsY
Especifica um dos valores a seguir para indicar o quão bem o filtro pode ampliar a altura da imagem.
Valor | Significado |
---|---|
0 | O filtro não pode ser estendido. |
1 | O filtro usa duplicação de pixel para obter alongamento. |
2 | O filtro usa interpolação (2 toques). |
3 | O filtro usa uma forma de interpolação de ordem superior (mais suave). |
ShrinkTapsX
Especifica um dos valores a seguir para indicar o quão bem o filtro pode reduzir a largura da imagem.
Valor | Significado |
---|---|
0 | O filtro não pode ser reduzido. |
1 | O filtro elimina algumas linhas de pixels para obter redução. |
2 | O filtro usa interpolação (2 toques). |
3 | O filtro usa uma forma de interpolação de ordem superior (mais suave). |
ShrinkTapsY
Especifica um dos valores a seguir para indicar o quão bem o filtro pode reduzir a altura da imagem.
Valor | Significado |
---|---|
0 | O filtro não pode ser reduzido. |
1 | O filtro elimina algumas colunas de pixels para obter redução. |
2 | O filtro usa interpolação (2 toques). |
3 | O filtro usa uma forma de interpolação de ordem superior (mais suave). |
MinFrameInterval
Especifica a taxa mínima de quadros permitida. Esse valor se aplica somente a filtros de captura.
MaxFrameInterval
Especifica a taxa máxima de quadros permitida. Esse valor se aplica somente a filtros de captura.
MinBitsPerSecond
Especifica a taxa mínima de dados, em bits por segundo, que esse pino pode produzir.
MaxBitsPerSecond
Especifica a taxa máxima de dados, em bits por segundo, que esse pino pode produzir.
Comentários
A estrutura KS_VIDEO_STREAM_CONFIG_CAPS é idêntica à estrutura de VIDEO_STREAM_CONFIG_CAPS do DirectShow.
É importante entender as relações entre os membros dessa estrutura. Por exemplo, suponha os seguintes valores para alguns dos membros da estrutura:
MinCroppingSize = (160, 120)
MaxCroppingSize = (320, 240)
CropGranularityX = 4
CropGranularityY = 8
Esses valores indicam que os tamanhos de corte válidos começam em MinCroppingSize e aumentam em etapas na direção x por CropGranularityX e na direção y por CropGranularityY. Nesse caso, o valor x pode ser de 160 a 320 pixels, em etapas de quatro, e o valor y pode estar em qualquer lugar de 120 a 240 pixels nas etapas de oito.
No cenário de exemplo, alguns dos tamanhos válidos são:
160 × 120, 164 × 120, 168 × 120, 172 × 120 e assim por diante.
160 × 128, 164 × 128, 168 × 128, 172 × 128 e assim por diante.
160 × 136, 164 × 136, 168 × 136, 172 × 136 e assim por diante.
CropAlignX e CropAlignY indicam onde o retângulo de corte pode estar localizado dentro do retângulo de tamanho de entrada. Considerando um retângulo de corte de 160 × 120 e um valor de 2 para CropAlignX e um valor de 4 para CropAlignY, alguns dos valores válidos para o membro rcSource da estrutura KS_VIDEOINFOHEADER seriam:
(0, 0, 160, 120)
(2, 0, 162, 120)
(2, 4, 162, 124)
(2, 8, 162, 128)
Para um retângulo de corte de 320 × 240 e os mesmos valores de alinhamento de corte( 2, 4, 322, 244) é um exemplo dos muitos retângulos válidos.
Os membros MinCroppingSize, MaxCroppingSize, CropGranularityX, CropGranularityY, CropAlignX e CropAlignY discutidos acima trabalham juntos para especificar quais valores de rcSource são válidos para a estrutura KS_VIDEOINFOHEADER que descreve o tipo de mídia do pino de saída. Os membros restantes da estrutura (MinOutputSize, MaxOutputSize, OutputGranularityX e OutputGranularityY) descrevem os membros biWidth e biHeight da estrutura KS_BITMAPINFOHEADER , que está contida no tipo de mídia do pino KS_VIDEOINFOHEADER estrutura.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ksmedia.h (inclua Ksmedia.h) |