Método IAMStreamConfig::GetStreamCaps (strmif.h)
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El método GetStreamCaps recupera un conjunto de funcionalidades de formato.
Sintaxis
HRESULT GetStreamCaps(
[in] int iIndex,
[out] AM_MEDIA_TYPE **ppmt,
[out] BYTE *pSCC
);
Parámetros
[in] iIndex
Especifica la capacidad de formato que se va a recuperar, indizada desde cero. Para determinar el número de funcionalidades que admite el pin, llame al método IAMStreamConfig::GetNumberOfCapabilities .
[out] ppmt
Dirección de un puntero a una estructura de AM_MEDIA_TYPE . El método asigna la estructura y la rellena con un tipo de medio.
[out] pSCC
Puntero a una matriz de bytes asignada por el autor de la llamada. Para obtener vídeo, use la estructura VIDEO_STREAM_CONFIG_CAPS (vea Comentarios). En el caso del audio, use la estructura AUDIO_STREAM_CONFIG_CAPS . Para determinar el tamaño necesario de la matriz, llame al método GetNumberOfCapabilities . El tamaño se devuelve en el parámetro piSize .
Valor devuelto
Devuelve un valor HRESULT . Estos son algunos de los valores posibles.
Código devuelto | Descripción |
---|---|
|
El índice especificado es demasiado alto. |
|
Correcto. |
|
Índice no válido. |
|
Memoria insuficiente. |
|
Valor de puntero NULL. |
|
El pin de entrada no está conectado. |
Comentarios
Este método devuelve dos fragmentos de información:
- El parámetro pmt recibe una estructura de AM_MEDIA_TYPE rellenada, que describe un formato de salida admitido.
- El parámetro pSCC recibe una estructura que contiene información de formato adicional. En el caso del vídeo, pSCC recibe una estructura de VIDEO_STREAM_CONFIG_CAPS . En el caso del audio, recibe una estructura AUDIO_STREAM_CONFIG_CAPS .
Antes de llamar a SetFormat, puede modificar la estructura de AM_MEDIA_TYPE en pmt mediante la información de pSCC. Por ejemplo, un pin de audio podría devolver un tipo de medio predeterminado de 44 kHz, estéreo de 16 bits en el parámetro pmt . En función de los valores devueltos en la estructura de AUDIO_STREAM_CONFIG_CAPS , puede cambiar este formato a mono de 8 bits antes de llamar a SetFormat.
El método asigna la memoria para la estructura AM_MEDIA_TYPE que se devuelve en el parámetro pmt . El autor de la llamada debe liberar la memoria, incluido el bloque de formato. Puede usar la función auxiliar DeleteMediaType en la biblioteca de clases base. El autor de la llamada debe asignar la memoria para el parámetro pSCC .
En algunos filtros de compresión, este método produce un error si el pin de entrada del filtro no está conectado.
Programadores de filtros: para obtener más información sobre cómo implementar este método, vea Exponer formatos de captura y compresión.
Ejemplos
En el ejemplo siguiente se recupera el primer formato admitido (índice cero) en un pin de salida de vídeo y, a continuación, se establece este formato en el pin.
C++ |
---|
int iCount, iSize; BYTE *pSCC = NULL; AM_MEDIA_TYPE *pmt; |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | strmif.h (incluya Dshow.h) |
Library | Strmiids.lib |