CubiSDK
The CubiSDK enables building customized firmware for video-enabled devices, like IPTV Set-top Boxes, DVB Zappers, DVRs etc. It includes many pre-built plugins and libraries which can be used to add value to an existing Cubiware's IPTV or DVB/IP Middleware or to accelerate development time of a new Digital TV product.
The Cubiware's Software Development Kit consists of:
- Cubiware Media Platform (CMP) libraries stack
- Cross-compilation tools
- Configuration management tools
- Firmware upgrade tools
- Animator for UI prototyping

Native UI for Digital TV
CubiSDK takes advantage of CMP - a platform for deploying modern visually appealing native user interfaces. Native user interfaces do not use a web browser instead they render the GUI in real-time on the embedded device. Native UI applications are not restricted by a page based rendering paradigm - they can include 30 fps animations, effects and transitions between screens, pop-up menus, and more. Native UI applications can be updated in much the same way as web pages using XML.
XML Layout and scripting
Each CMP application consists of the following:
- Application layout - XML metadata which describes layout and navigation of the Graphical User Interface
- Application logic - binary application coded in C

In order to modify the design of the user interface of a Native UI application it is necessary to modify the contents of the XML metadata file. This can be done either during runtime or prior to the initial execution of the Native UI. The XML metadata file can be either stored on local storage (HDD, Flash or ROM memory) or can be retrieved (downloaded) from the network during runtime. XML application layout files (.xml) can include data regarding:
- Menu layout, Screen layout, widgets, bitmaps, menus, navigation flow
- Screen navigation, geometry, fonts, effects, transitions
XML layout files and bitmaps are fetched by CMP from either a HTTP server or from the local filesystem of the embedded device in which case they have to be either pre-loaded to the device from the network prior to invoking the CMP application or need to be persistantly stored within the filesystem. XML layout files can be updated (replaced) during run-time.

Feature-rich Cubiware Media Platform stack
The Cubiware Media Platform is a Linux firmware software stack for digital media devices. It delivers IPTV video and graphics playback capabilities to low-power devices such as Set-Top Boxes. CMP leverages media processing features of various hardware to which it was ported. Using CMP developers can deliver breakthrough User Interface applications running on low-power embedded devices. The CMP built-in features include:
- IPTV video player
- DVB stack & player
- PVR & Timeshift
- DRM plugins
- Built-in native widgets and apps like: EPG, YouTube, Cover flow etc
- Embeddable Web widgets
- Web browser
- Accelerated Graphics Engine
- Animation and transition effects
- Co-operative multitasking
Co-operative Multitasking (CMT)
Graphics rendering for HDTV can be a very CPU intensive task. CMP uses co-operative multitasking to ensure that rendering even the most complex user interfaces does not degrade the overall experience of the user interface and video playback in particular. The CMT scheduler is more efficient at allocating CPU time slots than the Linux scheduler. Video playback thus always takes precedence before the user interface (no more lost frames!).
User interface applications can include animations, transitions and effects. Effects can be applied to all widgets displayed on screen.
- The CubiSDK comes with a library of over 20 pre-defined effects: Fade, dim, move (on spline), roll, transform and more
- Effects can be driven by parameters defined in XML layout files.
HTML widgets
Block Diagram
Hardware Platforms
The Cubiware Media Platform has been ported to the following hardware platforms:
- Broadcom BCM7401, BCM7402, BCM7405, BCM7406, BCM7411
- ST Micro STi710x
- Sigma Designs SMP8634
- ALI Tech
Cooperative Multi-tasking (CMT)
The core of CMP is the Cubiware Accelerated Graphics Engine. CAGE uses a concept called cooperative mutlitasking to effciently deliver CPU processing power based on the actual resource usage requirements needed at a given point in time during application execution. CAGE does not replace the linux scheduler instead it efficiently manages CPU time slots on a user-space level thus discouraging the linux scheduler from interuppting certain critical tasks which would degrade the user experience of the product.

