IPin::NewSegment
NewSegment メソッドは、この呼び出しの後に受け取ったメディア サンプルが、共通の開始タイム、終了タイム、レートを持つセグメント グループであることをピンに通知する。
アプリケーションからこのメソッドを呼び出さないこと。このメソッドは、他のフィルタから呼び出される。
構文
HRESULT NewSegment(
REFERENCE_TIME tStart,
REFERENCE_TIME tStop,
double dRate
);
パラメータ
tStart
セグメントの開始タイム (100ナノ秒単位)。元のソースを基準とする。
tStop
セグメントの終了タイム (100ナノ秒単位)。元のソースを基準とする。
dRate
セグメントが処理されるレート、オリジナル レートのパーセンテージ。
戻り値
成功した場合は S_OK を返す。それ以外の場合は、エラーの発生を示す HRESULT 値を返す。
注意
新しいストリームを開始するたびとシーク操作が終わるたびに、ソース フィルタ (あるいはパーサー フィルタ) はこのメソッドを呼び出す。以前のデータ バッチを出力した後、新しいデータで IMemInputPin::Receive を呼び出す前に、そのソース フィルタはダウンストリーム フィルタの入力ピンのメソッドを呼び出す。ダウンストリーム フィルタは NewSegment 呼び出しをダウンストリームに伝達する。
フィルタはセグメント情報を使ってサンプルを処理する。たとえば、いくつかのフォーマットでは、次のフレームなしではデルタ フレームを再構築できない。したがって、終了タイムがデルタ フレームにあると、ソース フィルタは追加フレームを送らなければならない。デコーダ フィルタはセグメント情報を基に最終フレームを決定する。セグメント レートは、オーディオ データなどの連続的なデータ ソースをレンダリングするときに使う。たとえば、オーディオ レンダラはサンプリング レートとセグメント レートを使って、オーディオ データを正しくレンダリングする。
参照