Condividi tramite


Metodo IAMStreamConfig::SetFormat (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 SetFormat metodo imposta il formato di output sul pin.

Sintassi

HRESULT SetFormat(
  [in] AM_MEDIA_TYPE *pmt
);

Parametri

[in] pmt

Puntatore a una struttura AM_MEDIA_TYPE che specifica il nuovo formato.

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
E_OUTOFMEMORY
Memoria insufficiente.
E_POINTER
Valore del puntatore NULL.
VFW_E_INVALIDMEDIATYPE
Questo tipo di supporto non è valido.
VFW_E_NOT_CONNECTED
Il pin di input non è connesso.
VFW_E_NOT_STOPPED
Impossibile impostare il tipo; il filtro non viene arrestato.
VFW_E_WRONG_STATE
Impossibile impostare il tipo; il filtro non viene arrestato.

Commenti

Questo metodo specifica il formato per il pin di output. Se il pin non è connesso, userà questo formato per la connessione successiva. Se il pin è già connesso, tenterà di riconnettersi con questo formato. Il metodo potrebbe non riuscire se l'altro pin rifiuta il nuovo tipo.

Se questo metodo ha esito positivo, le chiamate successive al metodo IPin::EnumMediaTypes restituiranno il nuovo tipo e nessun altro.

Nella maggior parte dei filtri questo metodo ha esito negativo se il filtro è sospeso o in esecuzione. In alcuni filtri di compressione, il metodo ha esito negativo se il pin di input del filtro non è connesso.

Con alcuni filtri, è possibile chiamare questo metodo con il valore NULL per reimpostare il pin nel formato predefinito.

Filtra sviluppatori: le osservazioni seguenti descrivono come implementare questo metodo:

Se il pin di output non è connesso e il pin supporta il tipo di supporto specificato, restituire S_OK. Archiviare il tipo di supporto e offrirlo come numero di formato zero nel metodo CBasePin::GetMediaType . Non offrire altri formati e rifiutare altri formati nel metodo CBasePin::CheckMediaType .

Se il pin è già connesso e il pin supporta il tipo di supporto, riconnettere il pin con tale tipo. Se l'altro pin rifiuta il nuovo tipo, restituire VFW_E_INVALIDMEDIATYPE e ripristinare la connessione originale.

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

Vedi anche

Codici di errore e di esito positivo

Interfaccia IAMStreamConfig