Freigeben über


Neue Segmente

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Ein Segment ist eine Gruppe von Medienbeispielen, die eine gemeinsame Startzeit, Stoppzeit und Wiedergaberate gemeinsam haben. Die IPin::NewSegment-Methode signalisiert den Beginn eines neuen Segments. Es bietet eine Möglichkeit für einen Quellfilter, nachgeschaltete Filter darüber zu informieren, dass sich die Zeit- und Rateninformationen geändert haben. Wenn der Quellfilter beispielsweise nach einem neuen Punkt im Stream sucht, ruft er NewSegment mit der neuen Startzeit auf.

Einige nachgelagerte Filter verwenden die Segmentinformationen, wenn sie Beispiele verarbeiten. Wenn die Stoppzeit beispielsweise auf einen Deltarahmen fällt, muss der Quellfilter in einem Format, das die Interframekomprimierung verwendet, möglicherweise zusätzliche Beispiele nach der Stoppzeit senden. Dadurch kann der Decoder den endgültigen Deltaframe decodieren. Um den richtigen endgültigen Frame zu bestimmen, bezieht sich der Decoder auf die Endzeit des Segments. Als weiteres Beispiel verwenden Audiorenderer die Segmentrate zusammen mit der Audio-Samplingrate, um die richtige Audioausgabe zu generieren.

Im Pushmodell initiiert der Quellfilter den NewSegment-Aufruf . Im Pullmodell erfolgt dies durch den Parserfilter. In beiden Fällen ruft der Filter NewSegment auf dem nachgeschalteten Eingabenadel auf, der den Aufruf an den nächsten Filter weitergibt, bis der Aufruf den Renderer erreicht. Filter müssen NewSegment-Aufrufe mit anderen Streamingaufrufen serialisieren, z. B. IMemInputPin::Receive.

Die Streamzeit wird nach jedem neuen Segment auf 0 zurückgesetzt. Zeitstempel für Stichproben, die nach dem Segment bei 0 beginnen.