Technical Implementation

The design philosophy of the ORB project is to support integrations with the architecture and framework of the host system/browser configuration in a native way, whilst using a common base. In practice this means the ORB project is a set of common components used with different platform/browser configurations and a set of platform/browser specific integrations. The ORB project uses an injected JavaScript polyfill to extend the browser frame with the objects and other extensions required to support HbbTV applications. When these extensions need to communicate with components outside of the browser frame, they make a set of narrowly defined JSON-RPC requests to an interface we call the bridge. The request mechanism to the bridge is abstracted and can be changed depending on what is available for each platform/browser configuration. The bridge is responsible for communicating with the other components and the rest of the system.

Android Reference Integration

ORB requires information from, and control of, the broadcast stack and the application used to present television. For Android we created a reusable TvBrowser library with a set of interfaces developers can integrate to bring ORB into their application. The TvBrowser is an extension of the system’s Chromium based Webview which provides mechanisms to enable the browser to be extended with custom JS objects (HbbTV) and for these to communicate outside of the browser. The ORB TvBrowser HbbTV solution can be integrated with any 3rd party DVB stack and DSM-CC that is supported by the target platform. The Android reference implementation provided by ORB integrates the TvBrowser library with the DTVKit DSM-CC and DVB stack components (binaries are available for evaluation purposes). A basic mock application is also maintained for testing and development of the library independent of any broadcast stack. It is possible to run the mock application, and the DTVKit DVB stack from within the Android Emulator on a desktop PC.


RDK Reference Integration


For the reference RDK implementation, ORB is integrated with the system’s WPE browser. It uses the same set of core components although the platform architecture necessitates a slightly different approach for the integration. WPE provides many of the features necessary for the implementation of HbbTV using ORB. The browser has a mechanism to include custom javascript objects (HbbTV) and to enable those objects to communicate outside of the browser. WPE also offers an in-built mechanism for ‘punch hole’ display of underlaid broadcast video. Again the ORB RDK integration can be used with any 3rd party DVB stack and DSM-CC, but the reference implementation makes use of DTVKit’s RDK integration of its DVB stack and DSM-CC which are presented as RDK services.