OBS has integrated DTVKit’s DVB stack (DVBCore) with the RDK software framework providing a common API for RDK applications to use for the management of DVB services. DTVKit’s DVBCore is a market-proven DVB stack, offering Free to Air (FTA) and Pay-Per-View (PPV) functionality, which has been deployed in a wide range of TV and set-top box products worldwide. The DVB integration is compatible with both RDK 3.0 and 4.0 architectures.


DTVKit’s DVBCore is a fully featured DVB stack offering support for:

Multi-Standard Tuner

Multi-standard tuners

Integrated Channel Database

Electronic Programme Guide

Access to full event information
(7 day EPG where available)

Plug-in architecture for custom SI handling to meet Regional and Operator broadcast requirements)

PVR Icon

DVR engine with timeshift and clash management

Interfaces for CI Plus and Conditional Access Systems

Integration with the RDK environment enables RDK applications to integrate DVB services and provide the following capabilities:

Electronic Programme Guide

Access to full event information
(7 day EPG where available)

Ability to watch and playback different ‘live’ streams on different clients (dependent on available resources)

PVR Icon

DVR and timeshift with server or client based playback


The DVB stack has been integrated with the RDK platform in such a way as to minimise the number of changes to existing RDK software components. However, it has been necessary to make small changes to the RMF to support communication with the DVB stack through the introduction of the ‘DTV’ module, shown in the diagram below. We have also introduced a new ‘DTVSrc’ GStreamer component and made some changes to the DVB stack itself so it can produce the Single Program Transport Stream (SPTS) needed for playing a service both locally and via the network using RDK’s Media Framework.

The architecture is presented in the diagrams below:

Service selection can be performed locally or remotely by sending a request to the RMFStreamer. This request chooses the ‘DTV’ module which then passes the service selection request on to the DVB stack. Once the DVB stack has performed the tune and set up the demux with the streams that make up the SPTS for the service, the ‘DTVSrc’ GStreamer component is then responsible for making the data available for playback locally or remotely.


To see a demonstration of how DVBCore is integrated with RDK, please watch the video below:

DVB Stack Interfaces

The DVB integration makes use of well defined interfaces at both the platform and application layers:

Application Interface

In an RDK 3.0 based system a websocket RPC interface is used to enable control of the DVB stack and retrieval of programme related data by the application. The RPC API controls service acquisition, service management, service selection, and EPG data retrieval.
For an RDK 4.0 based platform the existing RPC API is replaced with a Thunder nano-service offering the same functionality.

Platform Interface

DVBCore has a ‘platform layer’ which is used to abstract it from the underlying hardware. Using this, DVBCore can be integrated with a range of silicon vendor platform APIs, and has been ported to many in the past. The platform layer does require some modification for RDK and our ambition is to agree a standard form of platform layer with RDK.


Operators usually employ some form of content protection to secure their broadcast services. Methods for securing the content are either CI Plus or a form of proprietary Conditional Access System (CAS). DVBCore has well-defined interfaces for both CI Plus and CAS, and has been deployed with a range of market leading CA providers’ solutions. Accordingly it is feasible for DVBCore to manage the CAS directly although how best to integrate CAS in an RDK environment is still a topic that is under discussion.


The RDK DVB integration is a work in progress and we are discussing architectural improvements with RDK. For further information, or if you’d like to meet with us, please contact: info@oceanbluesoftware.co.uk.