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
Qedit.h
Libreria
Strmiids.lib

Vedi anche

Uso di Sample Grabber

Interfaccia ISampleGrabber