IPin::NewSegment メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは NewSegment
、この呼び出しの後に受信したメディア サンプルがセグメントとしてグループ化され、共通の開始時刻、停止時間、レートでピンに通知します。
アプリケーションでは、このメソッドを呼び出さないでください。 このメソッドは、他のフィルターによって呼び出されます。
構文
HRESULT NewSegment(
REFERENCE_TIME tStart,
REFERENCE_TIME tStop,
double dRate
);
パラメーター
tStart
元のソースに対するセグメントの開始時刻 (100 ナノ秒単位)。
tStop
元のソースに対するセグメントの終了時刻 (100 ナノ秒単位)。
dRate
元のレートに対する割合として、このセグメントを処理する必要があるレート。
戻り値
成功した場合はS_OK、エラーの原因を示す HRESULT 値を返します。
注釈
ソース フィルター (またはパーサー フィルター) は、新しい各ストリームの開始時と各シーク操作の後に、このメソッドを呼び出します。 前のデータ バッチを配信した後、新しいデータで IMemInputPin::Receive を呼び出す前に、ダウンストリーム フィルターの入力ピンで メソッドを呼び出します。 ダウンストリーム フィルターは、呼び出しをダウンストリームに NewSegment
伝達します。
フィルターでは、セグメント情報を使用してサンプルを処理できます。 たとえば、一部の形式では、次のキー フレームなしでデルタ フレームを再構築することはできません。 したがって、デルタ フレームで停止時間が発生した場合、ソース フィルターは追加のフレームを送信する必要があります。 デコーダー フィルターは、セグメント情報に基づいて最終的なフレームを決定します。 セグメント レートは、オーディオ データなどの連続データ ソースをレンダリングするために使用されます。 たとえば、オーディオ レンダラーはサンプリング レートとセグメント レートを使用してオーディオ データを正しくレンダリングします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |