Codici di notifica degli eventi

[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.

In questa sezione sono elencati gli eventi DirectShow che non sono specifici del DVD. Per gli eventi specifici del DVD, vedere DVD Event Notification Codes .For events specific to DVD, see DVD Event Notification Codes.

I filtri inviano eventi a Filter Graph Manager chiamando il metodo IMediaEventSink::Notify . Filter Graph Manager gestisce alcuni eventi e accoda altri per l'applicazione. L'applicazione li recupera chiamando il metodo IMediaEvent::GetEvent .

Nelle sezioni seguenti, ogni voce elenca il codice dell'evento, il significato dei parametri dell'evento e l'azione predefinita di Filter Graph Manager per l'evento, se presente. Per eseguire l'override dell'azione predefinita, chiamare IMediaEvent::CancelDefaultHandling. I codici evento sono definiti nei file di intestazione Evcode.h e Audevcod.h. Se non è presente alcuna azione predefinita, Filter Graph Manager inoltra automaticamente l'evento all'applicazione (tramite la coda di eventi).

Eventi personalizzati

I filtri possono definire eventi personalizzati con codici evento nell'intervallo EC_USER e versioni successive. Filter Graph Manager le inserisce direttamente nella coda degli eventi. Tuttavia, si applicano le avvertenze seguenti:

  • Filter Graph Manager non può liberare i parametri dell'evento usando il normale metodo IMediaEvent::FreeEventParams . L'applicazione deve liberare qualsiasi numero di memoria o riferimento associato ai parametri dell'evento.
  • Il filtro deve inviare l'evento solo dall'interno di un'applicazione preparata per gestire l'evento. È possibile che l'applicazione possa impostare una proprietà personalizzata sul filtro per indicare che è sicuro inviare l'evento.
Codice di notifica degli eventi Descrizione
EC_ACTIVATE Viene attivata o disattivata una finestra video.
EC_BANDWIDTHCHANGE Non supportato.
EC_BUFFERING_DATA Il grafico memorizza nel buffer i dati o ha arrestato il buffering dei dati.
EC_BUILT Invia dal controllo video al momento della compilazione di un grafico. Non inoltrato alle applicazioni.
EC_CLOCK_CHANGED L'orologio di riferimento è stato modificato.
EC_CLOCK_UNSET Il provider di clock è stato disconnesso.
EC_CODECAPI_EVENT Inviato da un codificatore per segnalare un evento di codifica.
EC_COMPLETE È stato eseguito il rendering di tutti i dati di un flusso specifico.
EC_CONTENTPROPERTY_CHANGED Non supportato.
EC_DEVICE_LOST Un dispositivo Plug and Play è stato rimosso o è di nuovo disponibile.
EC_DISPLAY_CHANGED La modalità di visualizzazione è cambiata.
EC_END_OF_SEGMENT È stata raggiunta la fine di un segmento.
EC_EOS_SOON Non supportato.
EC_ERROR_STILLPLAYING Un comando asincrono per eseguire il grafico non è riuscito.
EC_ERRORABORT Un'operazione è stata interrotta a causa di un errore.
EC_ERRORABORTEX Un'operazione è stata interrotta a causa di un errore.
EC_EXTDEVICE_MODE_CHANGE Non supportato.
EC_FILE_CLOSED Il file di origine è stato chiuso a causa di un evento imprevisto.
EC_FULLSCREEN_LOST Il renderer video sta disattivando la modalità schermo intero.
EC_GRAPH_CHANGED Il grafico dei filtri è stato modificato.
EC_LENGTH_CHANGED La lunghezza di un'origine è cambiata.
EC_LOADSTATUS Notifica all'applicazione lo stato di avanzamento all'apertura di un file di rete.
EC_MARKER_HIT Non supportato.
EC_NEED_RESTART Un filtro richiede il riavvio del grafico.
EC_NEW_PIN Non supportato.
EC_NOTIFY_WINDOW Notifica un filtro della finestra del renderer video.
EC_OLE_EVENT Un filtro passa una stringa di testo all'applicazione.
EC_OPENING_FILE Il grafico apre un file o ha terminato l'apertura di un file.
EC_PALETTE_CHANGED La tavolozza video è cambiata.
EC_PAUSED È stata completata una richiesta di sospensione.
EC_PLEASE_REOPEN Il file di origine è stato modificato.
EC_PREPROCESS_COMPLETE Inviato dal filtro WM ASF Writer quando completa la pre-elaborazione per la codifica multipass.
EC_PROCESSING_LATENCY Indica il tempo necessario per elaborare ogni campione da parte di un componente.
EC_QUALITY_CHANGE Il grafico elimina i campioni per il controllo qualità.
EC_RENDER_FINISHED Non supportato.
EC_REPAINT Un renderer video richiede un aggiornamento.
EC_SAMPLE_LATENCY Specifica l'intervallo di pianificazione di un componente per l'elaborazione degli esempi.
EC_SAMPLE_NEEDED Richiede un nuovo esempio di input dal filtro EVR (Enhanced Video Renderer).
EC_SCRUB_TIME Specifica il timestamp per il passaggio di frame più recente.
EC_SEGMENT_STARTED È stato avviato un nuovo segmento.
EC_SHUTTING_DOWN Il grafico del filtro viene arrestato, prima di essere distrutto.
EC_SNDDEV_IN_ERROR Si è verificato un errore del dispositivo in un filtro di acquisizione audio.
EC_SNDDEV_OUT_ERROR Si è verificato un errore del dispositivo in un filtro del renderer audio.
EC_STARVATION Un filtro non riceve dati sufficienti.
EC_STATE_CHANGE Il grafico del filtro ha modificato lo stato.
EC_STATUS Contiene due stringhe di stato arbitrarie.
EC_STEP_COMPLETE Un filtro che esegue l'esecuzione del passaggio del frame ha eseguito l'esecuzione del passaggio del fotogramma al numero specificato di fotogrammi.
EC_STREAM_CONTROL_STARTED Un comando start del controllo di flusso ha avuto effetto.
EC_STREAM_CONTROL_STOPPED Un comando di arresto del controllo di flusso ha avuto effetto.
EC_STREAM_ERROR_STILLPLAYING Si è verificato un errore in un flusso. Il flusso è ancora in riproduzione.
EC_STREAM_ERROR_STOPPED Un flusso è stato arrestato a causa di un errore.
EC_TIMECODE_AVAILABLE Non supportato.
EC_UNBUILT Invia dal controllo video quando un grafico è stato eliminato. Non inoltrato alle applicazioni.
EC_USERABORT L'utente ha terminato la riproduzione.
EC_VIDEO_SIZE_CHANGED Le dimensioni del video nativo sono state modificate.
EC_VIDEOFRAMEREADY Un frame video è pronto per la visualizzazione.
EC_VMR_RECONNECTION_FAILED Inviato da VMR-7 e vmR-9 quando non è stato in grado di accettare una richiesta di modifica del formato dinamico dal decodificatore upstream.
EC_VMR_RENDERDEVICE_SET Inviato quando vmR ha selezionato il meccanismo di rendering.
EC_VMR_SURFACE_FLIPPED Inviato quando il relatore dell'allocatore vmR-7 ha chiamato il metodo DirectDraw Flip sulla superficie da presentare.
EC_WINDOW_DESTROYED Il renderer video è stato distrutto o rimosso dal grafico.
EC_WMT_EVENT Inviato dal filtro lettore WM ASF quando legge i file ASF protetti da Digital Rights Management (DRM).
EC_WMT_INDEX_EVENT Inviato quando un'applicazione usa WM ASF Writer per indicizzare i file video di Windows Media.

 

Costanti e GUID

Notifica eventi in DirectShow