We decided to create a simple interface for the actual back-ends, audio and video, to provide drop-in replacements in case omx cannot be used. As a proof-of-concept, we implemented an ALSA back-end for the audio part. Furthermore, we implemented ‘null’ back-ends that do nothing but allows us, to test the prototype on non-ARM platforms. Since ALSA drivers are available for a lot single-board computers, a port of the prototype to other platforms would just require to implement a video back-end.
The implementation of the media decoding part is almost done, we only need to perform some more tests. Fine tuning of the code, for instance, 5.1 sound support or a pass-through mode (HDMI) for audio, will be taken care of when a first prototype is finished. That is why we now focus on the user interface.
As mentioned before, we aim for simplicity and therefore, we focus on the core functionality. The first step is to provide an interface that emulates a traditional TV set: power on/off, switch channels, select a specific channel. This involves the actual decoding of the transmitted IR events, this can be done with a mapping which we already described earlier, and the conversion of the command in the software. We already implemented the first part, but the conversion requires some adjustments of the gnutv software to encapsulate coherent functions in modules.