Videoaufnahmegeräte mit Radiotunern
Microsoft Windows XP und höher sowie Microsoft DirectX 8.1 und höher bieten Unterstützung für Videoaufzeichnungsgeräte, die FM-Radiotuner enthalten.
Ein Videoaufnahme-Minidriver für ein Gerät mit einem FM-Tuner sollte die KSPROPERTY_TUNER_STATUS-Eigenschaft unterstützen. Dadurch können Benutzermodusclients eine KSPROPERTY_TUNER_STATUS_S Struktur abrufen, die den Fortschritt von Optimierungsvorgängen beschreibt.
Minidriver können eine von drei Optimierungsstrategien unterstützen:
Optimierung durch PLL-Offset.
Wenn Ihre FM-Tunerhardware die Optimierung durch PLL-Offset unterstützt, sollte Ihr Minidriver den Strategy-Member der KSPROPERTY_TUNER_MODE_CAPS_S-Struktur auf KS_TUNER_STRATEGY_PLL festlegen.
Wenn Ihre FM-Tunerhardware keine PLL-Unterstützung bietet, sollte der Minidriver die PLL-Unterstützung mithilfe der nativen Signalstärkenanzeige emulieren. Die vom System bereitgestellte FM-Optimierungslogik in KsTvTune.ax ist nur aktiviert, wenn der Minidriver angibt, dass er die KS_TUNER_STRATEGY_PLL-Strategie unterstützt.
Optimierung durch Signalstärke.
Wenn der Minitreiber das Strategy-Element der KSPROPERTY_TUNER_MODE_CAPS_S-Struktur auf KS_TUNER_STRATEGY_SIGNAL_STRENGTH festlegt, versucht KsTvTune.ax weiterhin, das PLLOffset-Element der KSPROPERTY_TUNER_STATUS_S-Struktur zu verwenden. Daher ist dies keine gültige Option für die zukünftige Kompatibilität.
Darüber hinaus sollte der Minidriver das SignalStrength-Element der KSPROPERTY_TUNER_STATUS_S Struktur auf -1, 0 oder 1 festlegen, je nachdem, ob derzeit eine akzeptable Häufigkeit ausgewählt ist. Anbieter entscheiden, welcher Empfängersignalstärkeindikator (RSSI) oder Dezibel Millivolt (dBmV) über oder unter der Basisspannung ein akzeptables Signal für den FM-Empfang darstellt.
Die Optimierung wird manuell vom Minidriver durchgeführt.
Legen Sie das Strategieelement der KSPROPERTY_TUNER_MODE_CAPS_S-Struktur auf KS_TUNER_STRATEGY_DRIVER_TUNES fest, um die Optimierungslogik im Minidriver zu steuern.
Im FM-Modus durchläuft KsTvTune.ax das 200-kHz-Band um eine Frequenz (100 kHz auf beiden Seiten), wobei das minidriver-angegebene TuningGranularity-Element der KSPROPERTY_TUNER_MODE_CAPS_S Struktur als Schrittgröße verwendet wird. Die Suche wird beendet, wenn KsTvTune.ax das gesamte 200-kHz-Band durchsucht hat oder wenn der Minidriver feststellt, dass ein gutes Signal gefunden wurde, je nachdem, was zuerst auftritt.
Die Optimierung dauert viel länger, wenn der Minidriver immer einen PLLOffset-Wert von -1 oder 1 angibt. In diesem Fall schneidet die Optimierungslogik in KsTvTune.ax wiederholungsüberlappende Häufigkeitsbereiche. Der Minidriver sollte nur bei der ersten Optimierungsanforderung ein PLLOffset von -1 oder 1 angeben, oder wenn der Tuner innerhalb von acht Schritten des besten Signals liegt. Weitere Informationen zum Optimieren von Anforderungen finden Sie unter Erkennen der ersten Optimierungsanforderung.
Der Optimierungsprozess beginnt immer mit der Von einer Anwendung angeforderten Mittelfrequenz und steigt nicht höher als 100 kHz über das Zentrum. Wenn das PLLOffset jedoch nahe der oberen 100-kHz-Grenze zu 1 wird, tritt die Optimierungslogik über das 100-kHz-Band hinaus.
Wenn der Optimierungsprozess kein akzeptables Signal im oberen Bereich findet, versucht er es unter der Mittelfrequenz, wobei er von nicht weniger als 100 kHz unterhalb des Zentrums aufsteigt und auf der Mittelfrequenz endet, wenn er noch kein akzeptables Signal gefunden hat. Wenn das PLLOffset in der Nähe der Mittelfrequenz zu 1 wird, optimieren Sie Schritte über die Mittelfrequenz hinaus, bevor Sie schließlich zu ihr zurückkehren.
Ein PLLOffset-Memberwert von -1 oder 1 für die erste Optimierungsanforderung bewirkt , dass KsTvTune.ax in den Feinoptimierungsmodus wechselt. Der Feinoptimierungsmodus besteht aus der schnellen Abfolge der Optimierung von Anforderungen in Schrittintervallen, die vom TuningGranularity-Member der KSPROPERTY_TUNER_MODE_CAPS_S Struktur in der von PLLOffset angegebenen Richtung angegeben werden.
KsTvTune.ax beendet den Optimierungsversuch, wenn er nach acht Feinabstimmungsschritten bei der Erhöhung oder Verringerung der Frequenzen nicht erfolgreich ist. Wenn sich KsTvTune.ax im Feinabstimmungsmodus befindet, wird die Optimierungsanforderung als erfolgreich betrachtet, wenn PLLOffset die Richtung von -1 auf 1 oder von 1 zu -1 ändert oder zu 0 wechselt. Sowohl die Feinabstimmung als auch die Suche durch das 200-kHz-Band beenden an diesem Punkt.
Wenn PLLOffset jedoch größer als 1 oder kleiner als -1 ist, wird die Feinabstimmung entweder nicht gestartet oder abgebrochen. Der Feinabstimmungsmodus ist unabhängig von der Suche durch das 200-kHz-Band um die Mittelfrequenz, obwohl beide die in TuningGranularity angegebene Schrittgröße verwenden (daher die Vorsicht vor der Rückgabe eines PLLOffsets von -1..1).