Microsoft DirectX 8.0

IMPEG2PIDMap インターフェイス

このインターフェイスは MPEG-2 デマルチプレクサ フィルタ (Demux) の各出力ピンで実装され、トランスポート ストリーム モードでのみ使用される。アプリケーションや他のフィルタがピンと 1 つ以上のパケット ID (PID) を組み合わせるためにこのインターフェイスを呼び出す。PID が一度マップされると、Demux はすべてのパケットを出力ピンへその ID で出力する

番組ストリームについては、IMPEG2StreamIdMap インターフェイスを使用する。

メソッド名説明
MapPID指定された PID のパケットをピンにマップする。
UnmapPIDMapPID への以前の呼び出しで作成された PID マッピングを解除する。
EnumPIDMapこのピンに現在マップされているすべての PID のコレクションを返す。

IMPEG2PIDMap::MapPID

IMPEG2PIDMap インターフェイス

指定された 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 をマップしないので、この制限は問題とならないであろう。

IMPEG2PIDMap::UnmapPID

IMPEG2PIDMap インターフェイス

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 配列に書き込むこと。

IMPEG2PIDMap::EnumPIDMap

IMPEG2PIDMap インターフェイス

このピンに現在マップされているすべての PID のコレクションを返す。

構文

HRESULT EnumPIDMap(
    IEnumPIDMap** ppIEnumPIDMap
);

パラメータ

ppIEnumPIDMap
[in] 返されるコレクションにセットされる IEnumPIDMap インターフェイス ポインタ。

戻り値

成功なら S_OK を返す。 メソッドが失敗すると、エラー情報は標準 COM IErrorInfo インターフェイスを使って取得できる。