Compartilhar via


estrutura VIDEO_STREAM_CONFIG_CAPS (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

A estrutura VIDEO_STREAM_CONFIG_CAPS descreve uma variedade de formatos de vídeo. Os filtros de compactação de vídeo e captura de vídeo usam essa estrutura para descrever quais formatos eles podem produzir.

Nota A maior parte dessa estrutura foi preterida, com exceção dos seguintes membros da estrutura:
  • guid
  • VideoStandard
  • MinFrameInterval
  • MaxFrameInterval
Os aplicativos podem usar MinFrameInterval e MaxFrameInterval para obter o intervalo de taxas de quadros com suporte de um dispositivo de captura de vídeo. Os aplicativos devem evitar usar qualquer um dos outros membros dessa estrutura. Em vez disso, use a estrutura AM_MEDIA_TYPE retornada pelo método IAMStreamConfig::GetFormat .
 

Sintaxe

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;

Membros

guid

GUID que identifica o tipo de formato. Por exemplo, FORMAT_VideoInfo ou FORMAT_VideoInfo2. Para obter mais informações, consulte o membro formattype da estrutura AM_MEDIA_TYPE .

VideoStandard

O padrão de vídeo analógico com suporte. O valor é uma combinação bit a bit de sinalizadores do tipo de enumeração AnalogVideoStandard ou zero.

InputSize

Tamanho nativo do sinal de vídeo de entrada. Para um compressor, o tamanho é obtido do pino de entrada. Para um filtro de captura, o tamanho é o maior sinal que o filtro pode digitalizar com cada pixel restante exclusivo.

Nota Preterido.
 

MinCroppingSize

Menor retângulo de origem permitido. O retângulo de origem é definido no membro rcSource da estrutura VIDEOINFOHEADER ou VIDEOINFOHEADER2 .

Nota Preterido.
 

MaxCroppingSize

Maior retângulo de origem permitido.

Nota Preterido.
 

CropGranularityX

Granularidade horizontal do retângulo de origem. Esse valor especifica os incrementos válidos entre MinCroppingSize e MaxCroppingSize.

Nota Preterido.
 

CropGranularityY

Granularidade vertical do retângulo de origem. Esse valor especifica os incrementos válidos entre MinCroppingSize e MaxCroppingSize.

Nota Preterido.
 

CropAlignX

Alinhamento horizontal necessário do retângulo de origem.

Nota Preterido.
 

CropAlignY

Alinhamento vertical necessário do retângulo de origem.

Nota Preterido.
 

MinOutputSize

Tamanho mínimo de saída.

Nota Preterido.
 

MaxOutputSize

Tamanho máximo da saída.

Nota Preterido.
 

OutputGranularityX

Granularidade da largura de saída. Esse valor especifica os incrementos válidos entre MinOutputSize e MaxOutputSize.

Nota Preterido.
 

OutputGranularityY

Granularidade da altura da saída. Esse valor especifica os incrementos válidos entre MinOutputSize e MaxOutputSize.

Nota Preterido.
 

StretchTapsX

Indica o quão bem o filtro pode esticar a imagem horizontalmente.

Nota Preterido.
 

StretchTapsY

Indica o quão bem o filtro pode esticar a imagem verticalmente.

Nota Preterido.
 

ShrinkTapsX

Indica o quão bem o filtro pode reduzir a imagem horizontalmente.

Nota Preterido.
 

ShrinkTapsY

Indica o quão bem o filtro pode reduzir a imagem verticalmente.

Nota Preterido.
 
Os quatro membros da estrutura anteriores usam os seguintes valores:
Valor Significado
0
Não dá suporte a alongamento/redução.
1
Usa duplicação de pixel (alongamento) ou elimina pixels (redução)
2
Usa interpolação (2 toques)
3 e superior
Usa interpolação (>2 toques)

MinFrameInterval

A duração mínima do quadro, em unidades de 100 nanossegundos. Esse valor se aplica somente aos filtros de captura.

MaxFrameInterval

A duração máxima do quadro, em unidades de 100 nanossegundos. Esse valor se aplica somente aos filtros de captura.

MinBitsPerSecond

Taxa mínima de dados que esse pino pode produzir.

Nota Preterido.
 

MaxBitsPerSecond

Taxa máxima de dados que esse pino pode produzir.

Nota Preterido.
 

Comentários

O método IAMStreamConfig::GetStreamCaps retorna essa estrutura. Um aplicativo pode usar essas informações para modificar o formato de saída em um filtro de compactação de vídeo ou filtro de captura de vídeo.

Por exemplo, suponha que o filtro retorne os seguintes valores para o retângulo de origem:

  • MinCroppingSize = (160, 120)
  • MaxCroppingSize = (320, 240)
  • CropGranularityX = 4
  • CropGranularityY = 8
  • CropAlignX = 2
  • CropAlignY = 4
Esses números definem o conjunto de retângulos válidos para o membro rcSource da estrutura VIDEOINFOHEADER ou VIDEOINFOHEADER2 . Neste exemplo, o retângulo de origem mínimo tem 160 pixels de largura x 120 pixels de altura. A largura pode ser aumentada em etapas de 4 pixels, para um máximo de 320. A altura pode ser aumentada em etapas de 8 pixels, para um máximo de 240. Em outras palavras, as larguras válidas são 160, 164, 168... 320; e as alturas válidas são 120, 128, 136... 240.

Os membros CropAlignX e CropAlignY definem onde o canto superior esquerdo do retângulo de origem pode se sentar. Por exemplo, os seguintes retângulos são válidos, considerando os valores anteriores:

  • (0, 0, 160, 120)
  • (2, 0, 162, 120)
  • (2, 8, 162, 128)
De maneira semelhante, os membros MinOutputSize, MaxOutputSize, OutputGranularityX e OutputGranularityY definem quais valores têm suporte para os membros biWidth e biHeight da estrutura BITMAPINFOHEADER .

Para filtros de captura, os membros MinFrameInterval e MaxFrameInterval definem a duração mínima e máxima de cada quadro, conforme fornecido no membro AvgTimePerFrame da estrutura VIDEOINFOHEADER ou VIDEOINFOHEADER2 . O filtro pode não dar suporte a todas as taxas de quadros que se enquadram entre esses dois valores. O método IAMStreamConfig::SetFormat definirá a taxa de quadros para o valor mais próximo ao qual o filtro dá suporte. Se SetFormat for bem-sucedido, chame IAMStreamConfig::GetFormat para determinar a taxa de quadros real.

Requisitos

   
Cabeçalho strmif.h (inclua Dshow.h)

Confira também

Estruturas do DirectShow