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.
- guid
- VideoStandard
- MinFrameInterval
- MaxFrameInterval
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.
MinCroppingSize
Menor retângulo de origem permitido. O retângulo de origem é definido no membro rcSource da estrutura VIDEOINFOHEADER ou VIDEOINFOHEADER2 .
MaxCroppingSize
Maior retângulo de origem permitido.
CropGranularityX
Granularidade horizontal do retângulo de origem. Esse valor especifica os incrementos válidos entre MinCroppingSize e MaxCroppingSize.
CropGranularityY
Granularidade vertical do retângulo de origem. Esse valor especifica os incrementos válidos entre MinCroppingSize e MaxCroppingSize.
CropAlignX
Alinhamento horizontal necessário do retângulo de origem.
CropAlignY
Alinhamento vertical necessário do retângulo de origem.
MinOutputSize
Tamanho mínimo de saída.
MaxOutputSize
Tamanho máximo da saída.
OutputGranularityX
Granularidade da largura de saída. Esse valor especifica os incrementos válidos entre MinOutputSize e MaxOutputSize.
OutputGranularityY
Granularidade da altura da saída. Esse valor especifica os incrementos válidos entre MinOutputSize e MaxOutputSize.
StretchTapsX
Indica o quão bem o filtro pode esticar a imagem horizontalmente.
StretchTapsY
Indica o quão bem o filtro pode esticar a imagem verticalmente.
ShrinkTapsX
Indica o quão bem o filtro pode reduzir a imagem horizontalmente.
ShrinkTapsY
Indica o quão bem o filtro pode reduzir a imagem verticalmente.
Valor | Significado |
---|---|
|
Não dá suporte a alongamento/redução. |
|
Usa duplicação de pixel (alongamento) ou elimina pixels (redução) |
|
Usa interpolação (2 toques) |
|
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.
MaxBitsPerSecond
Taxa máxima de dados que esse pino pode produzir.
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
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)
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) |