Partager via


Collecte d’informations Fine-Tuning

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Bien qu’on s’attende généralement à ce que les fréquences des câbles soient exactes, les fréquences de diffusion peuvent être ajustées de plusieurs kHz par la station de diffusion pour réduire les interférences potentielles avec les canaux voisins.

Lorsque le filtre tuner TV écoute un canal, il recherche le signal le plus précis. Pour enregistrer ces informations dans le Registre pour les opérations de réglage suivantes, procédez comme suit :

  1. Appelez IAMTuner::ChannelMinMax pour déterminer la plage d’entrées de fréquence dans la table de fréquences actuelle.
  2. Appelez la méthode IAMTuner::p ut_Channel une fois pour chaque index de fréquence dans la plage.
  3. Appelez IAMTVTuner::StoreAutoTune pour enregistrer les informations de réglage précis dans le Registre. Les informations sont stockées sous la clé de Registre pour l’espace de paramétrage actuel.

Le code suivant illustre ces étapes :

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();
}

Avec les versions antérieures du filtre TV Tuner, la méthode IAMTVTuner::AutoTune était recommandée pour le réglage précis. Toutefois, cette méthode ignore tous les remplacements de fréquence, de sorte que son utilisation n’est plus recommandée. Le code suivant est équivalent à la méthode AutoTune , mais fonctionne correctement avec les remplacements de fréquence :

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;
}

Avec la réception de diffusion, il n’est pas toujours possible d’obtenir un verrou horizontal, bien que l’image soit visible. Dans ce cas, le matériel du tuner aura un verrou de fréquence, mais le décodeur n’aura pas de verrou horizontal. Cette condition peut être détectée lors de l’utilisation de put_Channel ou AutoTune en examinant le code de retour.

Valeur Description
S_OK L’opération de réglage a réussi et le tuner a obtenu un verrou de fréquence.
S_FALSE Il n’y a pas eu d’erreurs pendant l’opération de réglage, mais le tuner n’a pas pu obtenir un verrou de fréquence. Il est très peu probable qu’il existe un canal visible résultant de cette opération.

 

Tout autre code de retour indique qu’une erreur s’est produite.

Une valeur de retour de S_OK ne garantit pas que le décodeur a un verrou horizontal. La méthode AutoTune met à jour le paramètre FoundSignal pour indiquer si le verrouillage horizontal a été atteint. La méthode IAMTuner::SignalPresent retourne les mêmes informations.

Toutefois, lorsque la valeur de retour est S_OK, l’application a la possibilité d’ignorer le paramètre FoundSignal , car le tuner signale un verrou de fréquence. Il existe la possibilité d’un verrouillage de fréquence sur le bruit, mais cette possibilité devrait être mise en balance par rapport à la possibilité d’ignorer les canaux visibles.

Conversion du Registre

Pour prendre en charge les remplacements de fréquence, le format interne de la clé de Registre qui contient les informations de réglage précis a changé. Le format d’origine est toujours pris en charge pour la compatibilité descendante, mais il ne prend pas en charge les remplacements de fréquence.

L’ancien format de Registre est converti en nouveau format chaque fois que la méthode IAMTVTuner::StoreAutoTune est appelée. Si votre application ajoute des remplacements de fréquence, elle doit appeler la méthode StoreAutoTune pour effectuer une conversion vers le nouveau format de Registre. Il n’est pas nécessaire de collecter des informations de réglage précis avant d’appeler StoreAutoTune.

Réglage international de la télévision analogique