Sammeln Fine-Tuning Informationen
Obwohl kabelverkabelte Frequenzen im Allgemeinen exakt sein werden, können Übertragungsfrequenzen von der Broadcaststation um mehrere kHz nach oben oder unten angepasst werden, um potenzielle Störungen mit benachbarten Kanälen zu reduzieren.
Wenn der Tv Tuner-Filter auf einen Kanal optimiert ist, sucht er nach dem präzisesten Signal. Gehen Sie wie folgt vor, um diese Informationen für nachfolgende Optimierungsvorgänge in der Registrierung zu speichern:
- Rufen Sie IAMTuner::ChannelMinMax auf, um den Bereich der Häufigkeitseinträge in der aktuellen Häufigkeitstabelle zu bestimmen.
- Rufen Sie die IAMTuner::p ut _ Channel-Methode einmal für jeden Häufigkeitsindex im Bereich auf.
- Rufen Sie IAMTVTuner::StoreAutoTune auf, um die Feinabstimmungsinformationen in der Registrierung zu speichern. Die Informationen werden unter dem Registrierungsschlüssel für den aktuellen Optimierungsspeicherplatz gespeichert.
Diese Schritte sind im folgenden Code dargestellt:
long lMin = 0, lMax = 0;
hr = pTuner->ChannelMinMax(&lMin, &lMax);
if (SUCCEEDED(hr))
{
for (long i = lMin; i <= lMax; i++)
{
pTuner->put_Channel(i, AMTUNER_SUBCHAN_DEFAULT,
AMTUNER_SUBCHAN_DEFAULT)
}
pTuner->StoreAutoTune();
}
Bei früheren Versionen des TV-Tuner-Filters wurde die IAMTVTuner::AutoTune-Methode für die Feinabstimmung empfohlen. Diese Methode ignoriert jedoch alle Häufigkeitsüberschreibungen, sodass deren Verwendung nicht mehr empfohlen wird. Der folgende Code entspricht der AutoTune-Methode, funktioniert jedoch ordnungsgemäß mit Häufigkeitsüberschreibungen:
HRESULT MyAutoTune(IAMTVTuner *pTuner, long lIndex, long *plFoundSignal)
{
long SignalStrength = AMTUNER_NOSIGNAL;
HRESULT hr;
hr = pTuner->put_Channel(lIndex, AMTUNER_SUBCHAN_DEFAULT, AMTUNER_SUBCHAN_DEFAULT);
if (NOERROR == hr)
pTuner->SignalPresent(&SignalStrength);
*plFoundSignal = (SignalStrength != AMTUNER_NOSIGNAL);
return hr;
}
Beim Broadcastempfang ist es nicht immer möglich, eine horizontale Sperre zu erhalten, obwohl das Bild angezeigt werden kann. In diesen Fällen hat die Tunerhardware eine Frequenzsperre, aber der Decoder hat keine horizontale Sperre. Diese Bedingung kann erkannt werden, wenn Sie put _ Channel oder AutoTune verwenden, indem Sie den Rückgabecode untersuchen.
| Wert | Beschreibung |
|---|---|
| S _ OK | Der Tune-Vorgang war erfolgreich, und der Tuner hat eine Frequenzsperre. |
| S _ FALSE | Während des Tune-Vorgangs sind keine Fehler aufgetreten, aber der Tuner konnte keine Frequenzsperre erhalten. Es ist sehr unwahrscheinlich, dass dieser Vorgang einen sich anzeigenden Kanal ergibt. |
Jeder andere Rückgabecode gibt an, dass ein Fehler aufgetreten ist.
Der Rückgabewert S OK garantiert nicht, dass _ der Decoder über eine horizontale Sperre verfügt. Die AutoTune-Methode aktualisiert den FoundSignal-Parameter, um anzugeben, ob die horizontale Sperre erreicht wurde. Die IAMTuner::SignalPresent-Methode gibt die gleichen Informationen zurück.
Wenn der Rückgabewert jedoch S OK ist, hat die Anwendung die Möglichkeit, den FoundSignal-Parameter zu ignorieren, da der Tuner eine _ Frequenzsperre berichtet. Es besteht die Möglichkeit einer Häufigkeitssperre für Rauschen, aber diese Möglichkeit sollte gegen die Möglichkeit abgewogen werden, sich anzeigende Kanäle zu überspringen.
Registrierungskonvertierung
Um Häufigkeitsüberschreibungen zu unterstützen, wurde das interne Format des Registrierungsschlüssels geändert, der Feinabstimmungsinformationen enthält. Das ursprüngliche Format wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt, unterstützt jedoch keine Häufigkeitsüberschreibungen.
Das alte Registrierungsformat wird immer dann in das neue Format konvertiert, wenn die IAMTVTuner::StoreAutoTune-Methode aufgerufen wird. Wenn Ihre Anwendung Häufigkeitsüberschreibungen hinzufügt, sollte sie die StoreAutoTune-Methode aufrufen, um in das neue Registrierungsformat zu konvertieren. Es ist nicht erforderlich, vor dem Aufruf von StoreAutoTune Feinabstimmungsinformationen zu sammeln.