Metodo CVideoTransformFilter.ShouldSkipFrame
[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 ShouldSkipFrame
metodo determina se il filtro deve eliminare un campione specificato.
Sintassi
BOOL ShouldSkipFrame(
IMediaSample *pIn
);
Parametri
-
spilla
-
Puntatore all'interfaccia IMediaSample dell'esempio.
Valore restituito
Restituisce TRUE se il filtro deve eliminare questo esempio o FALSE se il filtro deve elaborare questo esempio.
Commenti
Questo metodo restituisce TRUE se vengono soddisfatte le condizioni seguenti:
- L'esempio include timestamp.
- Il tempo medio di decodifica è almeno il 25% della durata del frame.
- Il renderer è attualmente in ritardo di almeno un fotogramma, come segnalato tramite messaggi di qualità.
- Se si ignora il fotogramma chiave successivo, il fotogramma non arriva prima di un fotogramma.
Ai fini di questo calcolo, il filtro registra le informazioni seguenti durante l'elaborazione dei dati:
- Tempo medio di decodifica negli ultimi 20 fotogrammi (m_itrAvgDecode)
- Numero di fotogrammi dall'ultimo fotogramma chiave (m_nFramesSinceKeyFrame)
- Stima del numero di fotogrammi tra fotogrammi chiave (m_nKeyFramePeriod)
Quando il filtro elimina un frame, continua a rilasciare fotogrammi fino a raggiungere il fotogramma chiave successivo. Se questo metodo restituisce TRUE, invia anche un evento EC_QUALITY_CHANGE a Filter Graph Manager.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|