MPEG-2 Demux Run-Time Modi

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

Der MPEG-2 Demultiplexer ("demux") kann im Push- oder Pullmodus betrieben werden. Im Pushmodus stammen die Daten aus einer Livequelle, z. B. einer Netzwerkübertragung. Im Pullmodus stammen die Daten aus einer lokalen Datei.

  • Der Pullmodus ist in Windows XP und höher nur für Programmstreams verfügbar. Verwenden Sie auf down-level-Plattformen den MPEG-2 Splitter-Filter .
  • Der Pushmodus ist auf allen Plattformen für Programm- und Transportstreams verfügbar.

Der Demux unterstützt daher drei mögliche Modi: Programmdatenströme im Pullmodus, Programmdatenströme im Pushmodus und Transportstreams im Pushmodus. Der Demux bestimmt, welcher Modus zur Laufzeit verwendet werden soll. Der Modus wird bestimmt, wenn der Eingabestift eine Verbindung herstellt oder wenn der erste Ausgabepin konfiguriert wird, je nachdem, was zuerst geschieht:

  • Wenn der Eingabenadel eine Verbindung herstellt: Unter Windows XP und höher fragt der Demux den Upstream Filter für die IAsyncReader-Schnittstelle ab. Wenn der Upstream-Filter diese Schnittstelle verfügbar macht, konfiguriert sich der Demux für Programmstreams im Pullmodus. Andernfalls verwendet der Demux den Pushmodus, und der Medientyp bestimmt den Streamtyp (Programmstream oder Transportstream). Eine Liste der Eingabetypen finden Sie unter MPEG-2 Demultiplexer-Medientypen .
  • Wenn der erste Ausgabepin konfiguriert ist: Wenn Sie einen Ausgabepin erstellen und ihn für IMPEG2PIDMap abfragen, konfiguriert sich der Demux selbst für Transportdatenströme im Pushmodus. Wenn Sie die Pin für IMPEG2StreamIdMap abfragen, konfiguriert sich der Demux selbst für Programmstreams, auch im Pushmodus. Alle nachfolgenden Abfragen für die andere Schnittstelle schlagen fehl, da der Demux nicht in zwei Modi gleichzeitig ausgeführt werden kann.

Nachdem sich der Demux für einen bestimmten Modus konfiguriert hat, verbleibt er in diesem Modus. Um einen anderen Modus zu verwenden, müssen Sie eine neue instance des Demux erstellen.

Verwenden des MPEG-2-Demultiplexers