スレッドとクリティカル セクション
ここでは、DirectShow フィルタのスレッド、カスタム フィルタでのクラッシュやデッドロックを避けるために必要な手順について説明する。
ここでは次の内容について説明する。
- ストリーミングとアプリケーション スレッド
- ポーズ
- サンプルの受信と送信
- ストリーム終了通知の送信
- データのフラッシュ
- 停止
- バッファの取得
- ストリーミング スレッドとフィルタ グラフ マネージャ
- フィルタ スレッドの要約
参照
ここで示す例では、作成が必要なコードを表す疑似コードを使う。ここでは、カスタム フィルタが DirectShow 基底クラスから派生した次のようなクラスを使っていると想定している。
- CMyInputPin: CBaseInputPin から派生。
- CMyOutputPin: CBaseOutputPin から派生。
- CMyFilter: CBaseFilter から派生。
- CMyInputAllocator: CMemAllocator から派生した入力ピンのアロケータ。すべてのフィルタにカスタム アロケータが必要なわけではない。多くのフィルタは、CMemAllocator クラスで十分である。