Dispositivos de captura de vídeo con marcadores de radio
Microsoft Windows XP y versiones posteriores, y Microsoft DirectX 8.1 y versiones posteriores proporcionan compatibilidad con dispositivos de captura de vídeo que incluyen sintonizadores de radio FM.
Un minidriver de captura de vídeo para un dispositivo con un tuner FM debe admitir la propiedad KSPROPERTY_TUNER_STATUS . Esto permitirá a los clientes en modo de usuario recuperar una estructura de KSPROPERTY_TUNER_STATUS_S que describa el progreso de las operaciones de optimización.
Los minidrivers pueden admitir una de las tres estrategias de ajuste:
Ajuste por desplazamiento PLL.
Si el hardware de tuner FM admite el ajuste a través del desplazamiento PLL, el minidriver debe establecer el miembro Estrategia de la estructura de KSPROPERTY_TUNER_MODE_CAPS_S en KS_TUNER_STRATEGY_PLL.
Si el hardware de tuner FM no proporciona compatibilidad con PLL, el minidriver debe emular la compatibilidad con PLL mediante el indicador de intensidad de señal nativa. La lógica de ajuste fm proporcionada por el sistema en KsTvTune.ax solo se habilita si el minidriver especifica que admite la estrategia de KS_TUNER_STRATEGY_PLL .
Ajuste por intensidad de señal.
Si el minidriver establece el miembro Estrategia de la estructura de KSPROPERTY_TUNER_MODE_CAPS_S en KS_TUNER_STRATEGY_SIGNAL_STRENGTH, KsTvTune.ax sigue intentando usar el miembro PLLOffset de la estructura KSPROPERTY_TUNER_STATUS_S. Por lo tanto, esta no es una opción válida para la compatibilidad futura.
Además, el minidriver debe establecer el miembro SignalStrength de la estructura de KSPROPERTY_TUNER_STATUS_S en -1, 0 o 1, en función de si se selecciona actualmente una frecuencia aceptable. Los proveedores deciden qué nivel de intensidad de señal del receptor (RSSI) o decibel millivolt (dBmV) por encima o por debajo del voltaje de línea base constituye una señal aceptable para la recepción fm.
Ajuste realizado manualmente por el minidriver.
Establezca el miembro Estrategia de la estructura de KSPROPERTY_TUNER_MODE_CAPS_Sen KS_TUNER_STRATEGY_DRIVER_TUNES para controlar la lógica de ajuste en el minidriver.
En el modo FM, KsTvTune.ax paso por la banda de 200 kHz alrededor de una frecuencia (100 kHz en cualquier lado), utilizando el miembro TuningGranularity especificado por el minidriver de la estructura KSPROPERTY_TUNER_MODE_CAPS_S como tamaño de paso. La búsqueda se detiene cuando KsTvTune.ax ha buscado en toda la banda de 200 kHz, o cuando el minidriver determina que se ha encontrado una buena señal, lo que ocurra primero.
El ajuste tarda mucho más si el minidriver siempre especifica un valor PLLOffset de -1 o 1. En este caso, la lógica de optimización en KsTvTune.ax reintenta los intervalos de frecuencia superpuestos. El minidriver debe especificar un PLLOffset de -1 o 1 solo en la primera solicitud de ajuste, o cuando el sintonizador está dentro de ocho pasos de la mejor señal. Para obtener más información sobre cómo optimizar las solicitudes, consulte Reconocimiento de la primera solicitud de optimización.
El proceso de optimización siempre se inicia en la frecuencia central, según lo solicitado por una aplicación, y no supera los 100 kHz por encima del centro. Sin embargo, si el PLLOffset se convierte en 1 cerca del límite superior de 100 kHz, la lógica de ajuste pasa más allá de la banda de 100 kHz.
Si el proceso de optimización no encuentra una señal aceptable en el rango superior, intenta por debajo de la frecuencia central, aumentando de no más de 100 kHz por debajo del centro y finalizando en la frecuencia central si todavía no ha encontrado ninguna señal aceptable. De nuevo, si el PLLOffset se convierte en 1 cerca de la frecuencia central, ajuste los pasos más allá de la frecuencia central antes de finalmente volver a él.
Un valor de miembro PLLOffset de -1 o 1 en la primera solicitud de optimización hace que KsTvTune.ax entren en modo de ajuste preciso. El modo de ajuste preciso consta de solicitudes de ajuste rápido en intervalos de paso especificados por el miembro TuningGranularity de la estructura de KSPROPERTY_TUNER_MODE_CAPS_S en la dirección indicada por PLLOffset.
KsTvTune.ax detiene su intento de ajuste si no se realiza correctamente después de ocho pasos de ajuste fino en frecuencias crecientes o decrecientes. Después de KsTvTune.ax está en modo de ajuste, si PLLOffset cambia la dirección de -1 a 1, o 1 a -1, o se convierte en 0, la solicitud de optimización se considera correcta. Tanto la optimización como la búsqueda a través de la banda de 200 kHz se detienen en ese punto.
Sin embargo, si PLLOffset es mayor que 1 o menor que -1, el ajuste fino no se inicia o se abandona. El modo de ajuste fino es independiente de la búsqueda a través de la banda de 200 kHz alrededor de la frecuencia central, aunque ambos usan el tamaño del paso especificado en TuningGranularity (por lo tanto, la precaución de devolver siempre un PLLOffset de -1..1).