Metodo IAMStreamConfig::GetStreamCaps (strmif.h)
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il metodo GetStreamCaps recupera un set di funzionalità di formato.
Sintassi
HRESULT GetStreamCaps(
[in] int iIndex,
[out] AM_MEDIA_TYPE **ppmt,
[out] BYTE *pSCC
);
Parametri
[in] iIndex
Specifica la funzionalità di formato da recuperare, indicizzata da zero. Per determinare il numero di funzionalità supportate dal pin, chiamare il metodo IAMStreamConfig::GetNumberOfCapabilities .
[out] ppmt
Indirizzo di un puntatore a una struttura AM_MEDIA_TYPE . Il metodo alloca la struttura e la riempie con un tipo di supporto.
[out] pSCC
Puntatore a una matrice di byte allocata dal chiamante. Per il video, usare la struttura VIDEO_STREAM_CONFIG_CAPS (vedere La sezione Osservazioni). Per l'audio, usare la struttura AUDIO_STREAM_CONFIG_CAPS . Per determinare le dimensioni necessarie della matrice, chiamare il metodo GetNumberOfCapabilities . La dimensione viene restituita nel parametro piSize .
Valore restituito
Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.
Codice restituito | Descrizione |
---|---|
|
L'indice specificato è troppo elevato. |
|
Operazione completata. |
|
Indice non valido. |
|
Memoria insufficiente. |
|
Valore del puntatore NULL. |
|
Il pin di input non è connesso. |
Commenti
Questo metodo restituisce due informazioni:
- Il parametro pmt riceve una struttura di AM_MEDIA_TYPE compilata, che descrive un formato di output supportato.
- Il parametro pSCC riceve una struttura che contiene informazioni di formato aggiuntive. Per il video, pSCC riceve una struttura VIDEO_STREAM_CONFIG_CAPS . Per l'audio, riceve una struttura AUDIO_STREAM_CONFIG_CAPS .
Prima di chiamare SetFormat, è possibile modificare la struttura AM_MEDIA_TYPE in pmt usando le informazioni in pSCC. Ad esempio, un pin audio potrebbe restituire un tipo di supporto predefinito di 44 kHz, stereo a 16 bit nel parametro pmt . In base ai valori restituiti nella struttura AUDIO_STREAM_CONFIG_CAPS , è possibile modificare questo formato in mono a 8 bit prima di chiamare SetFormat.
Il metodo alloca la memoria per la struttura AM_MEDIA_TYPE restituita nel parametro pmt . Il chiamante deve rilasciare la memoria, incluso il blocco di formato. È possibile usare la funzione helper DeleteMediaType nella libreria di classi di base. Il chiamante deve allocare la memoria per il parametro pSCC .
In alcuni filtri di compressione, questo metodo ha esito negativo se il pin di input del filtro non è connesso.
Filtrare gli sviluppatori: per altre informazioni sull'implementazione di questo metodo, vedere Esposizione di formati di acquisizione e compressione.
Esempio
L'esempio seguente recupera il primo formato supportato (indice zero) in un pin di output video e quindi imposta questo formato sul pin.
C++ |
---|
int iCount, iSize; BYTE *pSCC = NULL; AM_MEDIA_TYPE *pmt; |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | strmif.h (include Dshow.h) |
Libreria | Strmiids.lib |