The Freevo 2.0 TVServer
Dependencies
The tvserver does not depend on Freevo 2.0 in any way. In fact, it could be possible to plug it into Freevo 1.x if you like since Freevo 1.x also uses kaa. The tvserver only requires
- kaa.base
- kaa.epg for EPG support
- External apps for the TV devices such as dvbstreamer
Design
The tvserver directory in the source tree contains the code for three different tasks: the interface to control it, the actual TV server and the TV devices. There is always only one TV server in the system. It is the main entry point to schedule recordings and (in the future) to access a card for live TV. The server itself uses TV devices to schedule the recordings. You can run the TV devices on different machines if you like. By doing so you have one resource manager for all TV cards. When starting a recording, the TV server will choose the TV device best suitable for the task. You can start the TV server and the TV devices by calling 'tvserver'. Use the --help option for details.
The interface to interact with the TV server is also part of the package. It contains the necessary code to control the TV server using kaa.rpc. To connect to the TV server from client side and from TV cards side, you only need to hostname and port to connect to. This can be done using kaa.config.
Configuration
The TV Server, the TV Devices and the interface can be configured using kaa.config (part of kaa.base).
FIXME: add more doc
Recordings XML file
FIXME: I will update this part later. See Recordserver for an outdated, but in terms of XML files current doc.
Status
The core is running and working (or was at the beginning of 2010 when I last worked on it). But does nothing useful due to the lack of a UI to control it (that part in Freevo 2.0 is broken).
The following items are still on my TODO list:
- Make it possible to control the TV server using the Freevo 2.0 GUI
- Add mdns support to limit the configuration to a password for kaa.rpc to connect
- Live TV support
The following items are nice to have if someone else is willing to do it:
- Create a small GTK app to control the TV server. Since kaa.base and GTK work fine together, it should be easy to create such a small tool.
- Make TV devices. Right now only a dvbstreamer plugin works. More devices, such as analogue TV would be nice
Due to limited time on my side it would be nice if someone else can take over the maintainership of the tvserver code. If you have any questions about the code, ask on the mailing list or on #freevo at irc.gnu.org.
Source Documentation
Unlike kaa, the Freevo 2.0 code does not have support to generate HTML files from the source doc. But the doc inside the code isn't that bad.
... and last but not least: if you discover something about the tvserver code, feel free to enhance this page.
