The entire playout system has designed to be modular. At the moment, the following modules exist: MySQL Database Front End - Administration Switch Control Daemon Text Service MPEG Service MPEG Service monitor Each of the modules can run on seperate computers if desired. The MySQL database can be accessed using PHP, the MySQL C API and via OBDC. Therefore, the most sensible way for a module to discover what it is supposed to be doing is to query the MySQL database itself. - All of the system clocks will be syncronised via a time server. This method has the advantage of ensuring that modules are only dependent on other modules that are further up the hierachy than themselves. Outline of services that each module should provide: Front End. - As discussed and agreed previously Switch Control Daemon. - Query the scheduling database and ensure that the correct channel is routed onto the UHF network. Text Service. - Query the scheduling database to determine what is currenly live. - If it is the text service, show text slides. - Before (0.5 seconds) something else due to go live, go to black to avoid rolling. 5 seconds after something else has gone live, show transmitter apology. Before (0.5 seconds) text service due to return, go to black to avoid rolling. MPEG Service. - Query the scheduling database to determine the next MPEG to play, load it into memory, play it. Be able to play MPEG files "back-to-back" The MPEG Service monitor. - Occasionally ping the MPEG Service to check that it is still alive. If it receives no reply it will be able to restart the machine on which the MPEG Service is running. Modules are required to query the database at least every 30 seconds to check for changes. QUESTION: Will text services be scheduled? If not, we will need a length field in the schedule table so that we can determine when MPEGS, Live Broadcasts, etc have finished. MPEG file format: The MPEG service will use exact copies of programmes from the archive. Therefore, these will contain 15 seconds of colour bars and 1K tone, followed by 15 seconds of clock. If possible (an MPEG is not already being played), the MPEG Service should start playing the MPEG 30 seconds in advance of the schedule time so that the beginnging of the programme coincides with the beginning of the transmission. This will allow us to predict entries into ad / music video breaks from live broadcasts easily. - We will be able to patch the MPEG video into the gallery and do a countdown, etc. If MPEGs are being played "back-to-back" then the Service should jump into the file at the correct place. - There is little need for clocks, etc in this case anyway.