Método IAMStreamConfig::GetStreamCaps (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.]
O método GetStreamCaps recupera um conjunto de recursos de formato.
Sintaxe
HRESULT GetStreamCaps(
[in] int iIndex,
[out] AM_MEDIA_TYPE **ppmt,
[out] BYTE *pSCC
);
Parâmetros
[in] iIndex
Especifica a funcionalidade de formato a ser recuperada, indexada de zero. Para determinar o número de recursos compatíveis com o pin, chame o método IAMStreamConfig::GetNumberOfCapabilities .
[out] ppmt
Endereço de um ponteiro para uma estrutura AM_MEDIA_TYPE . O método aloca a estrutura e a preenche com um tipo de mídia.
[out] pSCC
Ponteiro para uma matriz de bytes alocada pelo chamador. Para vídeo, use a estrutura VIDEO_STREAM_CONFIG_CAPS (consulte Comentários). Para áudio, use a estrutura AUDIO_STREAM_CONFIG_CAPS . Para determinar o tamanho necessário da matriz, chame o método GetNumberOfCapabilities . O tamanho é retornado no parâmetro piSize .
Retornar valor
Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.
Código de retorno | Descrição |
---|---|
|
O índice especificado é muito alto. |
|
Êxito. |
|
Índice inválido. |
|
Memória insuficiente. |
|
Valor do ponteiro NULL . |
|
O pino de entrada não está conectado. |
Comentários
Esse método retorna duas informações:
- O parâmetro pmt recebe uma estrutura de AM_MEDIA_TYPE preenchida, que descreve um formato de saída com suporte.
- O parâmetro pSCC recebe uma estrutura que contém informações de formato adicionais. Para vídeo, o pSCC recebe uma estrutura VIDEO_STREAM_CONFIG_CAPS . Para áudio, ele recebe uma estrutura AUDIO_STREAM_CONFIG_CAPS .
Antes de chamar SetFormat, você pode modificar a estrutura AM_MEDIA_TYPE no pmt, usando as informações em pSCC. Por exemplo, um pino de áudio pode retornar um tipo de mídia padrão de 44 kHz, estéreo de 16 bits no parâmetro pmt . Com base nos valores retornados na estrutura AUDIO_STREAM_CONFIG_CAPS , você pode alterar esse formato para mono de 8 bits antes de chamar SetFormat.
O método aloca a memória para a estrutura AM_MEDIA_TYPE retornada no parâmetro pmt . O chamador deve liberar a memória, incluindo o bloco de formato. Você pode usar a função auxiliar DeleteMediaType na biblioteca de classes base. O chamador deve alocar a memória para o parâmetro pSCC .
Em alguns filtros de compactação, esse método falhará se o pino de entrada do filtro não estiver conectado.
Filtrar Desenvolvedores: para obter mais informações sobre como implementar esse método, consulte Expondo formatos de captura e compactação.
Exemplos
O exemplo a seguir recupera o primeiro formato com suporte (índice zero) em um pino de saída de vídeo e define esse formato no pino.
C++ |
---|
int iCount, iSize; BYTE *pSCC = NULL; AM_MEDIA_TYPE *pmt; |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |