ラジオ チューナー付きビデオ キャプチャ デバイス
Microsoft Windows XP 以降、および Microsoft DirectX 8.1 以降では、FM ラジオ チューナを含むビデオ キャプチャ デバイスがサポートされています。
AFM チューナを備えたデバイスのビデオ キャプチャ ミニドライバーは、KSPROPERTY_TUNER_STATUS プロパティをサポートする必要があります。 これにより、ユーザー モード クライアントは、チューニング操作の進行状況を説明する KSPROPERTY_TUNER_STATUS_S 構造を取得できます。
ミニドライバーは、次の 3 つのチューニング戦略のいずれかをサポートできます。
チューニングは、DFS オフセットで行います。
FM チューナハードウェアがPLLオフセットによるチューニングをサポートしている場合、ミニドライバーは Strategy メンバーをKSPROPERTY_TUNER_MODE_CAPS_S 構造からKS_TUNER_STRATEGY_PLL.に設定する必要があります。
FM チューナハードウェアがPLLサポートを提供していない場合、ミニドライバーはネイティブ信号強度インジケータを使用してPLLサポートをエミュレートする必要があります。 KsTvTune.ax のシステム提供の FM チューニング ロジックは、ミニドライバーが KS_TUNER_STRATEGY_PLL 戦略をサポートすることを指定した場合にのみ有効になります。
信号強度によるチューニング。
ミニドライバーがKSPROPERTY_TUNER_MODE_CAPS_S構造体の Strategy メンバーをKS_TUNER_STRATEGY_SIGNAL_STRENGTHに設定する場合でも、KsTvTune.ax は、KSPROPERTY_TUNER_STATUS_S 構造体の PLLOffset メンバーの使用が試行されます。 したがって、これは将来の互換性のための有効なオプションではありません。
さらに、ミニドライバーは、許容される周波数が現在選択されているかどうかに応じて、SignalStrength メンバーを KSPROPERTY_TUNER_STATUS_S 構造体から 1、0、または 1 に設定する必要があります。 ベンダーは、基準電圧の上または下のどのレシーバ信号強度インジケータ (RSSI) またはデシベルミリボルト (dBmV) レベルがFM受信に許容可能な信号を構成するかを決定します。
ミニドライバーによって手動で実行されるチューニング。
Strategy メンバーを KSPROPERTY_TUNER_MODE_CAPS_S 構造体から KS_TUNER_STRATEGY_DRIVER_TUNES に設定し、ミニドライバーのチューニング ロジックをコントロールします。
FM モードでは、KsTvTune.axは、 KSPROPERTY_TUNER_MODE_CAPS_S構造体のミニドライバー指定の TuningGranularity メンバーをステップ サイズとして使用して、周波数 (両側に 100 kHz) の周りの 200 kHz 帯をステップ実行します。 検索は、KsTvTune.ax が 200 kHz 帯全体を検索したとき、またはミニドライバーが適切な信号が見つかったと判断したとき、どちらか早く発生したときに停止します。
ミニドライバーが常に PLLOffset に-1 または 1 の値を指定する場合、チューニングにかかる時間が大幅に長くなります。 この場合、KsTvTune.ax のチューニング ロジックは、重複する周波数範囲を再試行します。 ミニドライバーは、最初のチューニング要求時、またはチューナが最適な信号の 8 ステップ以内にある場合にのみ、-1 または 1 の PLLOffset を指定する必要があります。 チューニング要求の詳細については、最初のチューニング要求の認識を参照してください。
チューニング プロセスは常に、アプリケーションの要求に従って常に中心周波数から始まり、中心より 100kHz を超えない範囲で上昇します。 ただし、PLLOffset が 100 kHz の上限に近い 1 になった場合、チューニング ロジックは 100 kHz 帯域を超えます。
チューニングプロセスが上位範囲で許容可能な信号を見つけられない場合は、中心周波数より下を試し、中心より 100kHz 以下から段階的に上げ、それでも許容可能な信号が見つからなければ、中心周波数で終了します。 この場合も、中心周波数付近でPLLOffsetが 1 になると、チューニングは中心周波数を超えて進み、最終的に中心周波数に戻ります。
最初の チューニング要求で、-1 または 1 の PLLOffset メンバー値を指定すると、KsTvTune.ax は微調整モードになります。 微調整モードは、チューニング要求を、KSPROPERTY_TUNER_MODE_CAPS_S構造体の TuningGranularity メンバーによって指定されたステップ間隔で、急激に連続して、PLLOffset で示される方向に構成されます。
KsTvTune.axは、周波数を増減する 8 つの微調整手順の後に失敗した場合、チューニング試行を停止します。 KsTvTune.ax が微調整モードになった後、PLLOffset が -1 から 1、または 1 から -1 に変更された場合、または 0 になった場合、チューニング要求が成功したと見なされます。 微調整と 200 kHz 帯の検索の両方が、その時点で停止します。
ただし、PLLOffset が 1 より大きい場合、または -1 より小さい場合、微調整は開始されないか、破棄されます。 微調整モードは、中心周波数の周りの 200 kHz 帯での検索とは無関係ですが、どちらも TuningGranularity で指定されたステップ サイズを使用します (したがって、常に -1..1 の PLLOffset を返す場合は注意が必要です)。