VDRD is a software daemon designed to manage and regulate VDR operations. Its purpose is to provide users with improved control and management of VDR functionalities.
The way vdrd operates is by functioning either as a settop box, which drives a TV set through the video output of a "full-featured" DVB card or by using a viewer program to display video on the PC screen. Viewer programs for "full-featured" DVB cards include xawtv, tvtime, etc. If you use the xine plugin, xine serves as the viewer program in this case.
vdrd is designed to work with a separate viewer and only start VDR when recording with a timer, viewing TV with a viewer, or both. It shuts down VDR when not needed, which turns off the DVB hardware, saving energy and reducing heat dissipation. The daemon monitors whether the viewer program is active and whether a timer is active. It creates a FIFO device that the viewer program's output should redirect to, allowing vdrd to know when a viewer is active. Moreover, it periodically asks VDR for the next active timer.
The installation process involves creating a "video" user that owns the /video and LIBDIR directories. Config.h and Makefile parameters should be edited as needed, as well as the perl scripts (loaddevices and vdrshutdown). After running make and make install, the perl scripts are installed setuid root, while the main program runs under the "video" user.
At runtime, users can adapt the vdrd.conf configuration file as needed, primarily the plugins to load. The LIBDIR directory is owned by video.video, mode 700, providing protection for setuid scripts that could cause damage if called by a user. The RUNDIR directory is owned by video.video, mode 755. The FIFO is in this directory, allowing anyone to access it. The system uses vdrd for shutdown control, and VDR runs without an -s argument.
To initiate vdrd, users can start it on system startup via an init script. To view TV, they should start the viewer program with output into the FIFO, ensuring that at least one character gets written into it. Vdrd starts VDR and stops it again when the viewer program exits. Additionally, it starts VDR when a recording timer is about to start and stops it after the recording is complete. When vdrd sees that VDR can stop, it shuts down the computer if nobody is logged in. If vdrd gets stopped by SIGTERM during the system shutdown sequence, it sets a wake-up timer via "NVRAM-wakeup." If it gets a SIGHUP signal, it re-reads the configuration file, stops vdr if it is running, and immediately restarts it. This provides the user with an easy way to change options for VDR.
Version 0.1.2: N/A