SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

DirectShowフィルタの作成

オーディオチャンネルを結合する
DirectShowフィルタの作成

複数の入力ピンを持つDirectShowフィルタの作成方法

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード サンプルコード (10.1 KB)

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 前回までの記事で、オーディオチャンネルを分離する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. 実装するクラス
役割 クラス名 派生元
フィルタクラス AudioChMuxerFilter CBaseFilter
入力ピンクラス AudioInPin CBaseInputPin
出力ピンクラス AudioOutPin CBaseOutputPin

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
フィルタクラスの実装

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
DirectShowフィルタの作成連載記事一覧

もっと読む

この記事の著者

syu5()

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3386 2009/01/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング