Compartilhar via


Dispositivos de captura de vídeo com sintonizadores de rádio

O Microsoft Windows XP e posterior e o Microsoft DirectX 8.1 e posterior oferecem suporte para dispositivos de captura de vídeo que incluem sintonizadores de rádio FM.

Um minidriver de captura de vídeo para um dispositivo com um sintonizador FM deve dar suporte à propriedade KSPROPERTY_TUNER_STATUS . Isso permitirá que os clientes no modo de usuário recuperem uma estrutura KSPROPERTY_TUNER_STATUS_S que descreve o progresso das operações de ajuste.

Os minidrivers podem dar suporte a uma das três estratégias de ajuste:

  1. Ajuste por deslocamento pll.

    Se o hardware do sintonizador FM der suporte ao ajuste por meio do deslocamento PLL, o minidriver deverá definir o membro Estratégia da estrutura de KSPROPERTY_TUNER_MODE_CAPS_S como KS_TUNER_STRATEGY_PLL.

    Se o hardware do sintonizador FM não fornecer suporte a PLL, o minidriver deverá emular o suporte a PLL usando o indicador de força do sinal nativo. A lógica de ajuste FM fornecida pelo sistema no KsTvTune.ax será habilitada somente se o minidriver especificar que ele dá suporte à estratégia de KS_TUNER_STRATEGY_PLL .

  2. Ajustando pela força do sinal.

    Se o minidriver definir o membro Strategy da estrutura KSPROPERTY_TUNER_MODE_CAPS_S como KS_TUNER_STRATEGY_SIGNAL_STRENGTH, KsTvTune.ax ainda tentará usar o membro PLLOffset da estrutura KSPROPERTY_TUNER_STATUS_S. Consequentemente, essa não é uma opção válida para compatibilidade futura.

    Além disso, o minidriver deve definir o membro SignalStrength da estrutura KSPROPERTY_TUNER_STATUS_S como -1, 0 ou 1, dependendo se uma frequência aceitável está selecionada no momento. Os fornecedores decidem qual nível RSSI (Indicador de Intensidade do Sinal do Receptor) ou decibel millivolt (dBmV) acima ou abaixo da tensão de linha de base constitui um sinal aceitável para a recepção FM.

  3. Ajuste executado manualmente pelo minidriver.

    Defina o membro Estratégia da estrutura KSPROPERTY_TUNER_MODE_CAPS_S como KS_TUNER_STRATEGY_DRIVER_TUNES para controlar a lógica de ajuste no minidriver.

No modo FM, KsTvTune.ax percorre a banda de 200 kHz em torno de uma frequência (100 kHz em ambos os lados), usando o membro TuningGranularity especificado pelo minidriver da estrutura KSPROPERTY_TUNER_MODE_CAPS_S como um tamanho de etapa. A pesquisa é interrompida quando KsTvTune.ax pesquisou toda a banda de 200 kHz ou quando o minidriver determina que um bom sinal foi encontrado, o que ocorrer primeiro.

O ajuste levará muito mais tempo se o minidriver sempre especificar um valor PLLOffset de -1 ou 1. Nesse caso, a lógica de ajuste em KsTvTune.ax tenta novamente intervalos de frequência sobrepostos. O minidriver deve especificar um PLLOffset de -1 ou 1 somente na primeira solicitação de ajuste ou quando o sintonizador estiver dentro de oito etapas do melhor sinal. Para obter mais informações sobre solicitações de ajuste, consulte Reconhecendo a primeira solicitação de ajuste.

O processo de ajuste sempre começa na frequência central, conforme solicitado por um aplicativo, e avança no máximo 100 kHz acima do centro. No entanto, se o PLLOffset se tornar 1 próximo ao limite superior de 100 kHz, a lógica de ajuste vai além da banda de 100 kHz.

Se o processo de ajuste não encontrar um sinal aceitável no intervalo superior, ele tentará abaixo da frequência central, subindo de não menos que 100 kHz abaixo do centro e terminando na frequência central se ainda não tiver encontrado nenhum sinal aceitável. Novamente, se o PLLOffset se tornar 1 próximo à frequência central, o ajuste vai além da frequência central antes de finalmente retornar a ele.

Um valor de membro PLLOffset de -1 ou 1 na primeira solicitação de ajuste faz com que KsTvTune.ax entrem no modo de ajuste fino. O modo de ajuste fino consiste em ajustar solicitações em sucessão rápida em intervalos de etapa especificados pelo membro TuningGranularity da estrutura KSPROPERTY_TUNER_MODE_CAPS_S na direção indicada por PLLOffset.

KsTvTune.ax interromperá sua tentativa de ajuste se não tiver êxito após oito etapas de ajuste fino em frequências crescentes ou decrescentes. Depois que KsTvTune.ax estiver no modo de ajuste fino, se PLLOffset alterar a direção de -1 para 1 ou 1 para -1 ou se tornar 0, a solicitação de ajuste será considerada bem-sucedida. O ajuste fino e a pesquisa pela parada de banda de 200 kHz nesse ponto.

No entanto, se PLLOffset for maior que 1 ou menor que -1, o ajuste fino não será iniciado ou será abandonado. O modo de ajuste fino é independente da pesquisa por meio da faixa de 200 kHz em torno da frequência central, embora ambos usem o tamanho da etapa especificado em TuningGranularity (portanto, a cautela de sempre retornar um PLLOffset de -1..1).