スレッドとクリティカル セクション

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

このセクションでは、DirectShow フィルターでのスレッド処理と、カスタム フィルターでのクラッシュやデッドロックを回避するために実行する必要がある手順について説明します。

このセクションの例では、擬似コードを使用して、記述する必要があるコードを示します。 次のように、カスタム フィルターで DirectShow 基本クラスから派生したクラスが使用されていることを前提としています。

  • CMyInputPin: CBaseInputPin から派生します。
  • CMyOutputPin: CBaseOutputPin から派生します。
  • CMyFilter: CBaseFilter から派生します。
  • CMyInputAllocator: CMemAllocator から派生した入力ピンのアロケーター。 すべてのフィルターにカスタム アロケーターが必要なわけではありません。 多くのフィルターでは、 CMemAllocator クラスで十分です。

このセクションでは、次のトピックを扱います。

フィルター開発者向けのData Flow

DirectShow フィルターの作成