Compartilhar via


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)

Confira também

KS_AnalogVideoStandard

KS_BITMAPINFOHEADER

KS_VIDEOINFOHEADER