複数の入力ピンを持つDirectShowフィルタの作成方法
syu5 [著] 2009/01/20 14:00

サンプルコード 10.29 KB

 2つのモノラルオーディオを結合してステレオオーディオを出力するフィルタの作成を通じて、2つの入力ピンと1つの出力ピンを持つDirectShowフィルタの作成方法を解説します。

1 2 3 4 →

はじめに

 前回までの記事で、オーディオチャンネルを分離するDirectShowフィルタをCBaseFilterクラスから派生して作成する方法を紹介しました。今回は逆に結合するフィルタを作成してみたいと思います(図1)。

図1. 作成するフィルタのイメージ
図1

対象読者

  • C++言語が分かる方
  • DirectShowアプリケーションを作成したことのある方
  • DirectShowフィルタの作成に興味のある方

 本稿では、前回までの記事と重複する内容は省略し、異なる部分や重要なポイントに絞って解説していきます。

必要な環境

フィルタの仕様

 今回作成するフィルタは、2つの入力ピンから受信したモノラルオーディオストリームを、それぞれL/Rチャンネルとして結合し、1つの出力ピンからステレオオーディオストリームを送信します。作成するフィルタの仕様を示します(表1)。

表1. フィルタの仕様
種類Muxフィルタ
名前Audio Channel Muxer Filter
入力ピン数2
出力ピン数1
メジャータイプMEDIATYPE_Audio
サブタイプMEDIASUBTYPE_PCM
フォーマットタイプFORMAT_WaveFormatEx

 実装するクラスと関係を整理しておきます。クラス構成は前回とほぼ同じですが、フィルタクラスの名前が異なります(図2、表2)。

図2. クラス図
図2. クラス図
表2. 実装するクラス
役割クラス名派生元
フィルタクラスAudioChMuxerFilterCBaseFilter
入力ピンクラスAudioInPinCBaseInputPin
出力ピンクラスAudioOutPinCBaseOutputPin

1 2 3 4
→
INDEX
オーディオチャンネルを結合する DirectShowフィルタの作成
Page1
はじめに
対象読者
必要な環境
フィルタの仕様
フィルタクラスの実装
入力ピンクラスの実装
出力ピンクラスの実装
サンプルの転送
通知処理の実装
動作確認
まとめ
参考文献
プロフィール
syu5

Microsoft MVP for DirectShow/Media Foundation 2007 Oct - 2011 Sept.

ブログ : ImageryBlog

Twitter : https://twitter.com/syu5


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト