MPEG-2 demux ランタイム モード
MPEG-2 デマルチプレクサ ("demux") はプッシュ モードまたはプル モードで動作できる。プッシュ モードでは、データはネットワーク ブロードキャストなど、ライブ ソースから取得する。プル モードでは、データはローカル ファイルから取得する。
- プル モードは Windows XP でのみ利用でき、プログラム ストリームにのみ利用できる。ダウンレベル プラットフォームでは、MPEG-2 スプリッタ フィルタを使う。
- プッシュ モードはすべてのプラットフォームで利用でき、プログラム ストリームとトランスポート ストリームに利用できる。
したがって、demux では 3 つのモードをサポートしている。つまり、プル モードのプログラム ストリーム、プッシュ モードのプログラム ストリーム、およびプッシュ モードのトランスポート ストリームである。demux は実行時に使うモードを決める。モードが決まるのは、入力ピンの接続か最初の出力ピン構成のどちらか先に行われた時点である。
- 入力ピンの接続時 : Windows XP では、demux はアップストリーム フィルタに IAsyncReader インターフェイスを問い合わせる。アップストリーム フィルタがそのインターフェイスを公開している場合、demux はプル モードのプログラム ストリームで自分自身を構成する。それ以外の場合、demux はプッシュ モードを使い、メディア タイプによりストリーム タイプ (プログラム ストリームまたはトランスポート ストリーム) が決まる。入力タイプの一覧については、「MPEG-2 デマルチプレクサ メディア タイプ」を参照すること。
- 最初の出力ピンの構成時 : 出力ピンを作成し、IMPEG2PIDMap を問い合わせる場合、demux はプッシュ モードのトランスポート ストリームで自分自身を構成する。出力ピンで IMPEG2StreamIdMap を問い合わせる場合、demux はプッシュ モードのプログラム ストリームで自分自身を構成する。その後、他のインターフェイスを問い合わせても失敗する。demux は同時に 2 つのモードでは動作しないためである。
demux が特定のモードで自分自身を構成すると、そのモードのまま変わらない。異なるモードを使うには、demux の新しいインスタンスを作成する必要がある。
参照