Microsoft DirectX 8.0 |
このインターフェイスは MPEG-2 デマルチプレクサ フィルタ (Demux) の各出力ピンで実装され、トランスポート ストリーム モードでのみ使用される。アプリケーションや他のフィルタがピンと 1 つ以上のパケット ID (PID) を組み合わせるためにこのインターフェイスを呼び出す。PID が一度マップされると、Demux はすべてのパケットを出力ピンへその ID で出力する
番組ストリームについては、IMPEG2StreamIdMap インターフェイスを使用する。
メソッド名 説明 MapPID 指定された PID のパケットをピンにマップする。 UnmapPID MapPID への以前の呼び出しで作成された PID マッピングを解除する。 EnumPIDMap このピンに現在マップされているすべての PID のコレクションを返す。
指定された PID のパケットをピンにマップする。
構文
HRESULT MapPID( ULONG culPID, ULONG* pulPID, MEDIA_SAMPLE_CONTENT MediaSampleContent );
パラメータ
- culPID
- [in] putPID 配列の要素数を指定する ULONG 型の変数。
- pulPID
- [in] マップする PID を指定する ULONG 型の変数へのポインタ。
- MediaSampleContent
- [in] ストリームの内容を指定する MEDIA_SAMPLE_CONTENT 型の変数。
戻り値
成功なら S_OK を返す。 メソッドが失敗すると、エラー情報は標準 COM IErrorInfo インターフェイスを使って取得できる。
注意
与えられた時間に 255 より多い異なる PID をマップできない。これは Demux が自分自身で使用するために内部的にマップする PID を含む、この数はトランスポート ストリームに依存して変わる。アプリケーションは与えられたトランスポート ストリーム上で通常 10 から 12 より多い PID をマップしないので、この制限は問題とならないであろう。
MapPID への以前の呼び出しで作成された PID マッピングを解除する。
構文
HRESULT UnmapPID( ULONG culPID, ULONG* pulPID );
パラメータ
- culPID
- [in] putPID 配列の要素数を指定する ULONG 型の変数。
- pulPID
- [in] このピンにマップされる PID の配列。
戻り値
成功なら S_OK を返す。 メソッドが失敗すると、エラー情報は標準 COM IErrorInfo インターフェイスを使って取得できる。
注意
オーディオ ストリームとビデオ ストリームの出力ピンでは、与えられた時間にマップされる PID は 1 つだけである。PSI ストリームをトランスポート情報フィルタに出力するピンのような出力ピンでは、1 つのピンに複数の PID がマップされる場合がある。そのピンにどの PID がマップされているかを確認するには、IEnumPIDMap メソッドを使い、次にその値を pulPID 配列に書き込むこと。
このピンに現在マップされているすべての PID のコレクションを返す。
構文
HRESULT EnumPIDMap( IEnumPIDMap** ppIEnumPIDMap );
パラメータ
- ppIEnumPIDMap
- [in] 返されるコレクションにセットされる IEnumPIDMap インターフェイス ポインタ。
戻り値
成功なら S_OK を返す。 メソッドが失敗すると、エラー情報は標準 COM IErrorInfo インターフェイスを使って取得できる。