次の方法で共有


GraphEdit による TV ハードウェアおよびソフトウェアのテスト

このトピックは Windows XP にのみ適用。

DirectShow ベースのアプリケーションを書く場合は、通常、最初に GraphEdit でプロトタイプ フィルタ グラフを作成すると有用である。GraphEdit はビデオ コントロールを使わないが、プロトタイプを作成すると、TV デバイスおよびサードパーティの HDTV 互換 MPEG-2 デコーダがインストールされていて正しく動作していることを簡単に検証できる。

デジタル TV グラフを作成する前に、Platform SDK で提供されているダイナミック リンク ライブラリ (proppage.dll) を登録する必要がある (コマンド ラインで「regsvr32 [path]proppage.dll」と入力する)。この DLL にはネットワーク プロバイダ フィルタのチューニングに必要なプロパティ ページが含まれている。このプロパティ ページはテストの目的にのみ使用すること。実行中のアプリケーションでは独自のユーザー インターフェイスを用意する必要がある。

GraphEdit を使ってグラフを作成する場合、Broadcast Driver Architecture (BDA) ではデバイスの "トポロジ" における柔軟性が許容されている点に注意することが重要である。アプリケーション開発者にとって、これはチューニング デバイスを表すフィルタの名前と数が、メーカーまたは特定のカードによって異なることを意味する。たとえば、復調器を別個のフィルタとして公開しているカードもあれば、そうでないカードもある。一般に、大部分のカードはデジタル フィルタ グラフ用にチューナー、復調器、およびキャプチャ フィルタのうち 2 つか 3 つのフィルタを公開する。同様に、MPEG-2 デコーダにはオーディオ デコーディング用に別のフィルタを公開しているものと公開していないものがある。

MSTV フィルタ グラフ

GraphEdit でこのフィルタ グラフを作成する場合、基本的な規則として、すべてのフィルタをMPEG-2 デマルチプレクサに手動で追加し、接続する。次にデマルチプレクサの出力ピンを右クリックして各ストリームをレンダリングする。このコンテキストでは、"レンダリング" とはストリームのレンダリングに必要な残りのフィルタを GraphEdit が自動的に追加および接続することを意味する。ただし、グラフの再生を開始するには、[Run] ボタンをクリックする必要がある。

グラフを開始する前に、まずチャンネルをチューニングする必要がある。ネットワーク プロバイダ フィルタを右クリックし、[Properties] を選択して [Tune Request] タブをクリックする。有効であることがわかっている物理チャンネルをチューニングする。マイナー チャンネルおよびメジャー チャンネルの "-1" の値は、デフォルトを使うことを表す。チャンネルを選択するとグラフは実行状態への移行が可能になる。チャンネルを変更する場合は、その前にグラフを停止する必要がある。

デジタル フィルタ グラフ内のフィルタ

BDA ネットワーク プロバイダ: BDA ネットワーク プロバイダ フィルタは必ずグラフ内の最初のフィルタとなる。このグラフは ATSC ネットワーク プロバイダを持っている。マイクロソフトでは DVB 用のネットワーク プロバイダも提供している。サードパーティは自社の放送に合わせてカスタマイズした独自のネットワーク プロバイダを持つこともある。ネットワーク プロバイダは、コンテンツ多重、変調、放送規格など、個々のチューニング空間のダウンストリーム フィルタを構成する。このフィルタは ITuner インターフェイスを実装し、アプリケーションはそれを使って指定したチャンネルや周波数にデバイスをチューニングする。

デジタル TV チューナー : カーネル モードで KsProxy ベースのこのフィルタは、ハードウェア デバイス上のチューナーを表す。アプリケーションから呼び出し可能なインターフェイスがある場合とない場合がある。それはサードパーティのドライバの実装に依存している。このフィルタは復調デバイスをカプセル化する場合もある。

デジタル TV キャプチャ フィルタ : カーネル モードで KsProxy ベースのこのフィルタは、ハードウェア デバイス上での復調/デジタル化を表す。出力ピンが 1 つあり、そのピンは MPEG-2 トランスポート ストリームを MPEG-2 デマルチプレクサに出力する。

MPEG-2 デマルチプレクサ: デジタル TV グラフでは、MPEG-2 デマルチプレクサは MPEG-2 トランスポート ストリームをキャプチャ フィルタから受け取り、ストリームをデマルチプレクスする。通常 4 つの出力ピンを持つ。1 つ目の出力ピンはロー プログラム サービス情報 (PSI) パケットをトランスポート情報フィルタに出力する。2 つ目のピンはビデオ ストリームを MPEG-2 デコーダに出力する。3 番目のピンはオーディオをオーディオ デコーダに出力し、4 番目のピンは IP データを出力する。

BDA MPEG-2 トランスポート情報フィルタ: 受信者が指定した番組に関するすべての基本ストリームを正しく受け取るために、また受信者が何の番組がストリームに含まれているのか判断できるように、トランスポート ストリームはトランスポート ストリーム内に含まれるカタログ情報の役割をする多くのテーブルのセットを持つ。BDA ネットワーク プロバイダの方向に、MPEG-2 デマルチプレクサはトランスポート情報フィルタへ出力するテーブルを出力し、次にそれらのテーブルを解析し、ネットワーク プロバイダへの情報を提供し、グラフ内の他の受信フィルタとノードをコントロールできるようになる。また、BDA トランスポート情報フィルタはインターフェイスを提供する。それを使ってガイド ストア ローダは、関係する EPG とロケータの情報を抽出し、後からアプリケーションで取得できるようにアプリケーション提供のデータベースにロードすることができる。

HDTV 性能 MPEG-2 デコーダ : デジタル TV フィルタ グラフには高解像度 TV ビデオ ストリームの性能を持つサードパーティのデコーダが必要である。オーディオとビデオ両方のストリームを同じフィルタで操作するデコーダ実装もあるし、オーディオとビデオ別のフィルタを持つデコーダもある。

ビデオ レンダラ : Microsoft XP には 2 つのビデオ レンダラが存在する。古いビデオ レンダラと新しい Video Mixing Renderer (VMR) である。GraphEdit では両方とも同じ名前を持つが、古いレンダラはビデオ コントロールで使われない。そのため、TV グラフ内の "ビデオ レンダラ" は常に Video Mixing Renderer である。VMR はビデオ ストリームをシステムのビデオ メモリにレンダリングする。また、アプリケーションで指定したビットマップをビデオ矩形上に表示したり、TV ビデオ ストリームと他のビデオ ストリームをミキシングして特殊なエフェクトを生成することもできる。

BDA MPE フィルタ: このフィルタはマルチ プロトコル カプセル化 (MPE) ストリームから IP パケットを抽出し、IP Sink にそれを出力する。

BDA IP シンク: このフィルタは IP パケットを受け取り、Winsock 経由でホスト システムにそれを出力する。アプリケーションはそれを受け取り、IP データ ストリームを受信する。