Fundamentals
![flowchart](overview.png)
EPG workflow
The job of generating a suitable EIT stream, the EPG workflow, can be divided into individual tasks. Each of these tasks is performed by a separate module. The behavior of these modules depends on the configuration which is defined in the scheme file. Maintenance, control and monitoring of the the system can be done either through the Web interface or via the Command shell.
Configuration
The configuration defines the behavior of the system and adapts it to the environment. As there are quite a number of parameters to be defined, a spreadsheet seems to be the most handsome way to organize them.
Web interface
A picture is indeed worth a thousand words, and clicking symbols in a web interface is often more intuitive than using cryptic commands in the shell. To facilitate this, cherryEPG provides a web interface that simplifies mastering the system.
Command shell
Administrative tasks on the system are performed using a command line tool, designed to make simple tasks easy and complex ones feasible. It is used by beginners and advanced users.
Grabber
The first process in the EPG workflow is to get the service schedule data. Typically, the content provider should provide this information, but in practice there are other sources. There are usually companies that obtain this information from various sources and then sell it to network operators.
Ingester
Upon acquiring schedule data files for each service, the files must undergo processing to extract the desired event data. This information is stored in a database for later use, a process called ingesting. Given the variety of file formats describing event data, cherryEPG incorporates multiple parsers capable of reading these files and extracting relevant information.
Builder
The builder operates at regular intervals, processing schedule data in the database and generating the desired Event Information Tables. These tables are organized into segments/sections and packaged into a transport stream - forming a chunk.
Carousel
Finally, the prepared chunk must continuously play in an endless loop, commonly referred to as a carousel. In the event of an update in the EIT, the carousel replaces the currently played tables with the updated ones seamlessly. This exchange appears invisible to the multiplexer.