Metodo CDynamicOutputPin.ChangeOutputFormat

[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 ChangeOutputFormat metodo modifica dinamicamente il tipo di supporto per la connessione e fornisce nuove informazioni sui segmenti. La modifica può verificarsi durante l'esecuzione del grafico dei filtri. Una volta chiamato questo metodo, non è possibile recapitare campioni con il tipo di supporto precedente. Il chiamante deve assicurarsi che nessun campione precedente sia in sospeso.

Sintassi

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

Parametri

Pmt

Puntatore a una struttura AM_MEDIA_TYPE che specifica il tipo di supporto.

tSegmentStart

Ora di inizio del segmento.

tSegmentStop

Ora di arresto del segmento.

dSegmentRate

Frequenza segmento.

Valore restituito

Restituisce un valore HRESULT . I valori possibili includono quelli illustrati nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
Esito negativo. Probabilmente il filtro proprietario non ha chiamato CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
Il pin non è connesso.

Commenti

Questo metodo modifica il tipo di formato durante l'esecuzione del filtro. Se il pin downstream accetta il nuovo formato, non è necessaria alcuna riconnessione. In caso contrario, il metodo tenta di riconnettere il pin. Se il metodo modifica correttamente il formato, fornisce le nuove informazioni sul segmento. Questo metodo chiama il metodo CDynamicOutputPin::ChangeMediaType per eseguire la modifica del formato.

È necessario chiamare il metodo CDynamicOutputPin::StartUsingOutputPin prima di chiamare questo metodo.

Requisiti

Requisito Valore
Intestazione
Amfilter.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CDynamicOutputPin