P+F: A nivel técnico, ¿cómo funcionan las grabaciones?
P+F sobre las grabaciones
El decodificador virtual utiliza los servicios del Programador de Tareas de Windows para poner en marcha la grabación en la fecha/hora indicados. El Programador también es el encargado de controlar los patrones de repetición de la grabación.
Al crear una grabación
Cuando se solicita al decodificador virtual que programe una grabación:
- Se calcula un identificador único de tarea (es un conjunto de 32 números y letras de la ‘a’ a la ‘g’ escogidos al azar; técnicamente se trata de un Wikipedia: GUID)
- Se calcula un nombre único de tarea mediante la concatenación del nombre elegido por el usuario y el identificador único.
- Se genera un archivo XML conteniendo toda la información de la programación, junto con detalles técnicos sobre el canal a grabar y la ubicación del grabador externo.
- Este archivo XML se almacena en la base de datos de grabaciones
(RecordTasks.sdf)
- En la versión 1.0 ‘Wolf 424’, se almacena en la subcarpeta
Jobs
deMis documentos\DvbIpTv-MovistarTV
- En la versión 1.0 ‘Wolf 424’, se almacena en la subcarpeta
- Se crea la tarea en el Programador de Tareas en la carpeta indicada por el usuario en las opciones avanzadas y con el nombre de tarea anteriormente calculado.
- Al crear la tarea se incluye el XML de descripción de la programación como parte de la información de control de la tarea (esta información no es accesible desde la interfaz de usuario del Programador de Tareas)
Ejecutando la tarea de grabación
Cuando el Programador de Tareas de Windows detecta que se dan las condiciones de fecha y hora de una tarea de grabación, ejecuta un programa intermedio del decodificador virtual, llamado IpTVRecorderLauncher
.
- Este programa recibe como argumento la ubicación de la base de datos con todas las grabaciones y el identificador único de la grabación que hay que realizar.
- En la versión 1.0 ‘Wolf 424’, recibe como argumento la ubicación del archivo XML que describe la tarea de grabación.
- El programa no realiza la grabación directamente, sino que controla al programa de grabación real. La ubicación y los parámetros necesarios para ejecutar este grabador externo son obtenidos del archivo XML de descripción de la tarea.
- Este grabador externo es el propio VLC, aunque se ejecuta oculto.
- El programa muestra en pantalla información relativa a la grabación que se va a realizar.
- También actualiza la duración real de la grabación, teniendo en cuenta el tiempo transcurrido desde que debía comenzar la grabación y el momento en que se lanza el programa grabador.
- El proceso de grabación puede empezar más tarde por muchas razones, aunque normalmente el desfase será muy breve (de pocos segundos) y es ignorado.
- Cuando se puede producir un mayor desfase es si es necesario ‘despertar’ al equipo para poder lanzar la tarea, especialmente si el equipo estaba en modo de hibernación.
- El programa ejecuta el programa externo de grabación y espera a que termine.
- Al finalizar el grabador externo, notifica al Programador de Tareas la finalización de la grabación.
- Para poder descubrir problemas durante la grabación, el programa intermedio de grabación genera un archivo de registro con todos los pasos y actividades realizadas para llevar a cabo la grabación.
- Este archivo de registro se crea en la misma ubicación que el archivo XML de descripción de la tarea, con el mismo nombre pero con la extensión .log.txt
- Para detectar fallos o errores en el programa de grabación externo, deben consultarse los archivos de registro creados por dicho programa
- Con la configuración por defecto, VLC no genera ningún archivo de registro.
A tener en cuenta
Cuando se crea una tarea de grabación, y para no tener que solicitar permisos adicionales o contraseñas, la tarea se programa para ser ejecutada bajo la cuenta de usuario del usuario que realiza la programación de la tarea.
Esto implica que la cuenta de usuario debe estar activa y con la sesión iniciada en el momento de realizar la grabación. De no ser así, la grabación no podrá llevarse a cabo.