CVideoTransformFilter.ShouldSkipFrame-Methode
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die ShouldSkipFrame
-Methode bestimmt, ob der Filter ein angegebenes Beispiel löschen soll.
Syntax
BOOL ShouldSkipFrame(
IMediaSample *pIn
);
Parameter
-
Pin
-
Zeiger auf die IMediaSample-Schnittstelle des Beispiels.
Rückgabewert
Gibt TRUE zurück, wenn der Filter dieses Beispiel löschen soll, oder FALSE , wenn der Filter dieses Beispiel verarbeiten soll.
Bemerkungen
Diese Methode gibt TRUE zurück, wenn die folgenden Bedingungen erfüllt sind:
- Das Beispiel verfügt über Zeitstempel.
- Die durchschnittliche Decodierungszeit beträgt mindestens 25 % der Framedauer.
- Der Renderer ist derzeit mindestens ein Frame verspätet, wie über Qualitätsmeldungen gemeldet.
- Das Überspringen zum nächsten Keyframe würde nicht dazu führen, dass der Frame früh mehr als einen Frame eintrifft.
Für die Zwecke dieser Berechnung zeichnet der Filter die folgenden Informationen bei der Verarbeitung von Daten auf:
- Die durchschnittliche Decodierungszeit der letzten 20 Frames (m_itrAvgDecode)
- Die Anzahl der Frames seit dem letzten Keyframe (m_nFramesSinceKeyFrame)
- Eine Schätzung, wie viele Frames zwischen Keyframes vorhanden sind (m_nKeyFramePeriod)
Sobald der Filter einen Frame löscht, setzt er das Löschen von Frames fort, bis er den nächsten Keyframe erreicht. Wenn diese Methode TRUE zurückgibt, sendet sie auch ein EC_QUALITY_CHANGE-Ereignis an den Filter Graph-Manager.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|