MPEG-2 Demux-Run-Time Modi

Der MPEG-2-Demultiplexer ("demux") kann im Push- oder Pullmodus ausgeführt 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 downlevelbasierten Plattformen den MPEG-2-Splitterfilter.
  • Der Pushmodus ist auf allen Plattformen verfügbar, sowohl für Programmstreams als auch für Transportstreams.

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

  • Wenn der Eingabepin eine Verbindung herstellt: Bei Windows XP und höher fragt der Demux den Upstreamfilter für die IAsyncReader-Schnittstelle ab. Wenn der Upstreamfilter 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 nach IMPEG2PIDMapabfragen, konfiguriert sich der Demux für Transportstreams im Pushmodus. Wenn Sie den Pin für IMPEG2StreamIdMapabfragen, konfiguriert sich der Demux selbst für Programmstreams, auch im Pushmodus. Alle nachfolgenden Abfragen für die andere Schnittstelle führen zu einem Fehler, da die Demux nicht gleichzeitig in zwei Modi betrieben 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 Instanz der Demux erstellen.

Verwenden des MPEG-2-Demultiplexers