Rate Change Property Set
[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.]
Mit dem Eigenschaftensatz Rate Change können MPEG-2-Quell-/Parserfilter die Wiedergaberate ändern. MPEG-2-Decoder sollten diesen Eigenschaftssatz unterstützen. Der DVD-Navigator und die Streampuffer-Engine verwenden beide diese Eigenschaft, die festgelegt ist, um die Wiedergaberaten zu steuern.
Bezeichnung | Wert |
---|---|
Eigenschaftensatz-GUID | AM_KSPROPSETID_TSRateChange |
Eigenschafts-ID | BESCHREIBUNG |
---|---|
AM_RATE_CorrectTS | Informiert den Decoder darüber, dass der Navigator die richtigen Zeitstempel festlegt. |
AM_RATE_ExactRateChange | Veraltet. |
AM_RATE_MaxFullDataRate | Fragt den Decoder nach der maximalen Datenrate des Decoders ab. |
AM_RATE_QueryFullFrameRate | Fragt den Decoder nach der maximalen Vollbildrate des Decoders ab. |
AM_RATE_QueryLastRateSegPTS | Fragt den Decoder nach der Startzeit des zuletzt festgelegten Ratensegments ab. |
AM_RATE_SimpleRateChange | Sendet eine Ratenänderung an den Decoder. |
AM_RATE_Step | Veraltet. Weitere Informationen finden Sie unter Frame Stepping Property Set. |
AM_RATE_UseRateVersion | Gibt an, welche Version des Ratenänderungsmechanismus verwendet werden soll. |
Im Kontext dieses Eigenschaftssatzes misst rate die Rate, mit der Zeitstempel relativ zur Referenzuhr voranschreiten. Bewerten Sie die Inverse der Wiedergabegeschwindigkeit. Wenn die Wiedergabegeschwindigkeit beispielsweise das 2-fache beträgt, müssen die Zeitstempel um 1/2 der normalen Rate erhöht werden. Dies führt zu einer schnelleren Wiedergabegeschwindigkeit, da Die Beispiele früher als normal gerendert werden.
Beispiele werden mit einem Zeitstempel, der der Präsentationszeit entspricht, mit einer 1-fachen Rate an den Decoder gesendet. Der Decoder muss die Zeitstempel für die Ausgabebeispiele auf die richtige Präsentationszeit für die aktuelle Rate skalieren. Wenn die Rate beispielsweise 1/2 beträgt (d. h. die Wiedergabegeschwindigkeit ist 2x), muss der Decoder die Zeitstempel um 1/2 skalieren. Im Allgemeinen verfügen nur ich-Frames über Zeitstempel. Der Decoder muss die Zeitstempel für die B- und P-Frames interpolieren. Beachten Sie, dass die Zeitstempel während der umgekehrten Wiedergabe weiter zunehmen – Zeitstempel gehen nie rückwärts.
Zwei Versionen des Satz der Rate Change-Eigenschaft sind definiert: Version 1.0 und Version 1.1. Das Standardverhalten wird von Version 1.0 angegeben. Decoderhersteller werden empfohlen, Version 1.1 zu unterstützen, da die Wiedergabe reibungsloser ist. Der DVD-Navigator verwendet derzeit Version 1.0. Die Streampuffer-Engine verwendet Version 1.1.
Version 1.0 des Rate Change-Eigenschaftssatzes definiert das Standardverhalten für MPEG-2-Decoder.
Der Quellfilter signalisiert eine Ratenänderung, indem die eigenschaft AM_RATE_SimpleRateChange festgelegt wird. Die Daten für diese Eigenschaft sind die neue Rate sowie die Startzeit der Eingabestichprobe, wenn die Rate wirksam wird. Der Decoder verwaltet eine Warteschlange mit ausstehenden Ratenänderungen, sortiert nach Startzeit.
Bevor der DVD-Navigator in eine Nicht-1-Fach-Geschwindigkeit wechselt, liefert er alle ausstehenden Stichproben, legt die Rate vorübergehend auf 1,0 fest und leert den Graphen. Anschließend wird die neue Rate festgelegt. Alle Ratenänderungen sind für das Ende der aktuellen VOBU (Videoobjekteinheit) geplant. Beachten Sie, dass beim Leeren des Diagramms die Präsentationszeit auf Null zurückgesetzt wird.
Der DVD-Navigator arbeitet entweder im Smooth-Modus oder im Scanmodus. Im Smooth-Modus wird jeder Frame an den Decoder gesendet, einschließlich B- und P-Frames. Der DVD-Navigator verwendet den Smooth-Modus, wenn die Wiedergabegeschwindigkeit größer als null, aber kleiner als die maximale Datenrate des Decoders ist. Wenn die Wiedergabegeschwindigkeit kleiner als 0 (umgekehrte Wiedergabe) ist oder die maximale Datenrate des Decoders überschreitet, verwendet der DVD-Navigator den Scanmodus, in dem nur die I-Frames an den Decoder gesendet werden. Bei sehr hohen Geschwindigkeiten kann es einige I-Frames überspringen; Beispielsweise kann es jeden anderen I-Frame senden.
Standardmäßig schaltet der DVD-Navigator den Audiodatenstrom für andere Raten als 1.0 stumm. Sie können dies ändern, indem Sie IDvdControl2::SetOption mit dem flag DVD_AudioDuringFFwdRew aufrufen.
Version 1.1 des Satz der Rate Change-Eigenschaft folgt den gleichen Grundlegenden Prinzipien wie Version 1.0, mit den folgenden Unterschieden:
- Der Quellfilter signalisiert dem Decoder, Version 1.1 zu verwenden, indem die eigenschaft AM_RATE_UseRateVersion festgelegt wird. Andernfalls sollte der Decoder das Verhalten der Version 1.0 verwenden.
- Der Quellfilter leert das Diagramm nicht zwischen Ratenänderungen. Zeitstempel erhöhen sich daher monoton über Die Ratenänderungsgrenzen hinweg, anstatt auf null zurückzusetzen.
- Anstatt eine Ratenänderung für eine bestimmte Referenzzeit in eine Warteschlange zu stellen, kann der Quellfilter angeben, dass eine Ratenänderung für das am weitesten vorwärts gerichtete Beispiel des Decoders gilt, das als Beispiel am Anfang der ausgehenden Warteschlange des Decoders definiert ist. Dazu verwendet der Quellfilter die AM_RATE_SimpleRateChange-Eigenschaft , legt jedoch die Startzeit auf -1 fest.
- Der Quellfilter kann den Decoder nach der Startzeit der Rateänderung abfragen, die zuletzt in die Warteschlange gestellt wurde. Zu diesem Zweck wird die eigenschaft AM_RATE_QueryLastRateSegPTS verwendet.
- Der Quellfilter löscht keine Beispiele. Wenn die Rate die maximale Datenrate des Decoders überschreitet, sollte der Decoder die Frames nach Bedarf löschen.
- Der Quellfilter schaltet den Audiodatenstrom unabhängig von der maximalen Datenrate des Audiodecoders nicht stumm. Der Audiodecoder kann Beispiele löschen, wenn die Wiedergabegeschwindigkeit die maximale Rate des Decoders überschreitet. Es sollte jedoch weiterhin die Warteschlange mit geplanten Ratenänderungen beibehalten werden.
Anforderung | Wert |
---|---|
Header |
|