====== The Architecture ====== DTVKit is designed to be split into several different components. At the moment DTVKit contains the following components: {{:overview.png?400|}} ===== Application ===== The first component which we will deal with is the application, see below on how it fits with the other components: {{ :application.png?500 |}} The application which we provide is for test purposes and it contains components that are required to exercise some of the other components. It contains the following: * QT Browser - This contains a glue to enable a QT browser to be plugged into the application. * HW Abstraction Layer (Linux) - This contains the source of a Linux port. * User Interface - The user interface contains the following:- * Screens - These are screens sc_*.c/h which are used as a UI for the DVBCore so that the DVBCore/HbbTV can be exercised. These screens are a generic implementation and are mainly used for testing. They communicate with the UI engine when something is required to be displayed to the User. * UI Engine - This contains a UI Engine for displaying a full set top box graphical User Interface. * Font - This contains a interface to the Freetype font library and API to the UI Engine. {{ :ui.png?300 |}} ===== DVBCore ===== See the below diagram for a breakdown of the DVBCore: {{ :dvbcore.png?500 |}} The DVBCore contains the following components: * DVB - Full Digital Video Broadcast midware module. * Database - Full database module for RAM, NVM databases. * CA - Conditional Access glue layer. * CI - Contains CI+ Glue layer. * Media - Contains glue for jpeg and png Libraries. * OTA - Contains glue for Over the Air download. ===== HbbTV ===== See below diagram for a breakdown of HbbTV: {{ :hbbtv.png?500 |}} The HbbTV component contains the following: * NPAPI Plugin - HbbTV Browser plugin using NPAPI. * HBBTV Engine - Full HbbTV 1.2.1 compliant engine The NPAPI currently has 1 call to the Application. ===== MHEG5 ===== See below diagram for breakdown of MHEG5 with its relationships: {{ :mheg.png?500 |}} ===== DSMCC ===== See below DSMCC's relationship with the other components: {{ :dsmcc.png?400 |}} The DSMCC has 2 way communications with all other components.