Metodo ISampleGrabber::SetMediaType
[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.
Nota
[Deprecata. Questa API può essere rimossa dalle versioni future di Windows.]
Il SetMediaType
metodo specifica il tipo di supporto per la connessione sul pin di input di Sample Grabber.
Sintassi
HRESULT SetMediaType(
const AM_MEDIA_TYPE *pType
);
Parametri
-
pType
-
Puntatore a una struttura AM_MEDIA_TYPE specifica il tipo di supporto richiesto. Non è necessario impostare tutti i membri della struttura; per informazioni dettagliate, vedere la sezione Note.
Valore restituito
Restituisce S_OK.
Commenti
Per impostazione predefinita, Sample Grabber non ha alcun tipo di supporto preferito. Per assicurarsi che Sample Grabber si connetta al filtro corretto, chiamare questo metodo prima di compilare il grafico del filtro.
Questo metodo limita l'intervallo di tipi di supporti accettati dal filtro. Quando il filtro si connette, tenta di corrispondere al tipo di supporto specificato in pType. A tale scopo, confronta i GUID di tipo principale, sottotipo e tipo di formato, in tale ordine. Per ognuno di questi GUID, se pType ha il valore GUID_NULL, Sample Grabber accetta il tipo di supporto senza ulteriori controlli. Se pType ha un altro valore, Sample Grabber lo confronta con il GUID nel tipo di connessione. A meno che i due GUID non corrispondano esattamente, Sample Grabber rifiuta la connessione.
Per i tipi di supporti video, Sample Grabber ignora il blocco di formato. Pertanto, accetterà qualsiasi dimensione del video e frequenza dei fotogrammi. Quando si chiama SetMediaType
, impostare il blocco di formato (pbFormat) su NULL e la dimensione (cbFormat) su zero. Per i tipi di supporti audio, Sample Grabber esaminerà la struttura WAVEFORMATEX e richiederà che l'altro filtro si connetta a tale formato, a meno che il blocco di formato in pType non sia NULL o che il tag di formato sia WAVE_FORMAT_PCM e gli altri membri della struttura siano zero.
Esempio 1:
- Tipo principale: MEDIATYPE_Video
- Sottotipo: GUID_NULL
- Tipo di formato: GUID_NULL
Sample Grabber accetterà qualsiasi tipo di video in cui il tipo principale è uguale a MEDIATYPE_Video. Non controlla il sottotipo.
Esempio 2:
- Tipo principale: MEDIATYPE_Video
- Sottotipo: MEDIASUBTYPE_RGB24
- Tipo di formato: GUID_NULL
Ora sample Grabber controlla il sottotipo e accetta solo il video RGB 24.
Limitazioni: Indipendentemente dal tipo impostato, il filtro Sample Grabber rifiuta qualsiasi tipo di video con orientamento dall'alto verso il basso ( biHeight negativo) o con un tipo di formato di FORMAT_VideoInfo2. In questo caso, anche se il SetMediaType
metodo ha esito positivo, il filtro non si connetterà.
Nota
Il file di intestazione Qedit.h non è compatibile con le intestazioni Direct3D successive alla versione 7.
Nota
Per ottenere Qedit.h, scaricare l'aggiornamento Microsoft Windows SDK per Windows Vista e .NET Framework 3.0. Qedit.h non è disponibile nella Microsoft Windows SDK per Windows 7 e .NET Framework 3.5 Service Pack 1.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche