Introduction To DMS Integration
Introduction To DMS Integration
Matthew Jerrard
Last updated: 12th October, 2009.
- Memory protection
• IPC
– POSIX FIFOs Middleware Services
Including:
Information Services, System Security Services
Platform Component API (per engine language) Fusion-API (per engine language)
FSION-DSN-1182
Platform Component Adaptor
Application Engine
Application Engine
Application Process
System Booking Shared Content Application Engine
Preferences
Mgmnt Management Management
Audio
Framework Mgmnt Mgmt
Engine
CA System Libraries
System Control & Comms Services
Media Streaming Management Module Diagnostics Net Cfg Mgmnt
SYSTEM SYSTEM SYSTEM
OBJECT TIME LOCATOR
Mgmt
SYSTEM
System Init PPPD MEMMAN
ITC
IPC
CDI/POSIX
• Platform component adaptors Platform Component API (per engine language) Fusion-API (per engine language)
the Platform
Platform Components API Fusion-API (native)
Components/Fusion API
Resource Mgmnt Download Player Planner Fusion-API Shim
PCAT Plugin
Plugin Management
System Platform System User Activity Guide Object FileSystem
Mgmnt Recording Mgmnt Monitor
• Platform Components
System Booking Shared Content Application Engine
Preferences
Mgmnt Management Management
• FusionOS
Management Delivery
Device Mgmt Scheduler Engine Mgmnt Audio
Framework Mgmnt Mgmt
Engine
Program
Media Services Catalogue
– CDI
SI Mgmt Misc Libraries
Security Services HTTP RTSP
Viewing and Recording Content Transfer Database Security Services
Management Management Engine BinXML UPNP
CA Kernel BDOM SSDP
– POSIX
Software Section
Media Connection Management
Download Filter ZLIB
Serial Port
Comms
Mgmt Mgmt
TFTP OIG Client
Front Back Media Cap-
End End Presentation tion SSL
– VFS
Mgmt Mgmt Mgmnt Proc.
CA System Libraries
System Control & Comms Services
Media Streaming Management SYSTEM SYSTEM SYSTEM
– Helpers
Module Diagnostics Net Cfg Mgmnt OBJECT TIME LOCATOR
Mgmt
SYSTEM
System Init PPPD MEMMAN
ITC
IPC
CDI/POSIX
always downwards
OS Helpers USB Filesystems
Boot Basic
Network Storage Main
OS Helper Helper Loader class
Drivers Stack RAM ROM NVRAM XTVFS EXT3
Hotplug (BSL) drivers
Helper
• Player
– Found in dms/components/darwin_platform_components/darwin_player
– Allows applications to view content from various sources (broadcast, VOD, recorded, etc.).
• Guide
– Found in dms/components/darwin_platform_components/darwin_guide
– Allows applications to access service information.
• Preferences (PREFS)
– Found in dms/components/darwin_platform_components/darwin_prefs
– Allows storage and retrieval of user preferences in NVRAM. Also manages the configuration
of output ports at start up.
• Planner
– Found in dms/components/darwin_platform_components/darwin_planner
– Allows applications to book recordings and reminders and to access the catalogue of
bookings and recordings.
• Object File System (OFS)
– Found in dms/components/darwin_platform_components/darwin_ofs
– Allows clients to access objects (such as media files) regardless of the delivery mechanism.
• VideoGuard Client
– Found beneath dms/components/security_services/vgv/ and delivered as a precompiled
binary library
– Application process interface to the verifier.
• DHCP
– Found in dms/components/comms_services
– Passes config information to hosts over TCP/IP; allows
automatic allocation of network addresses.
• Modem Management (MODEM)
– Found in dms/components/comms_services
– Controls the modem.
• PPPD
– Found in dms/components/comms_services/pppd
– Controls network connections over point to point protocol.
• CA Kernel
– Found below dms/components/security_services/vgv and
delivered as a prebuilt binary library.
– Determines if a subscriber has the appropriate entitlements to
watch encrypted content and decodes it if they do.
Live TV
Surface
Blitter Viewport
(OSD)
Blender
TS TPID Vid
Tuner ES Filter Surface Viewport
Channel Filter Decoder
• DMS_Test_Harness (CUnit)
– Basic functionality
• DMS_PVR_Test_Harness (CUnit)
– PVR functionality
• DMS_Performance_Test_Harness (CUnit)
– Performance tests – including stress tests and timing information for
key functionality
• DMS_HFL_PVR_Test_Harness (HFL)
– PVR functionality, but based on the HFL framework rather than CUnit.
• DMS_Soak_Test_Harness (CUnit)
– Soak tests – continuous, repeated operations simulating normal use
over a long period.
• What is CUnit?
– Open source testing framework
– Organises a series of TESTS into SUITES
– Gives us assertions
– Gives us an XML formatted results summary as output
– http://cunit.sourceforge.net/
Network of three
streams (1 EPG Fed to desks
Stream player transponder, two and
– TIG other continuous
RECORDED transponders integration
carrying
services)
• components/
– The middleware components
• integration/dms/scenarios/
– .dat files and makfiles for each DMS test harness
• integration/dms/tests/
– Test files.
- There is often one test file per scenario, but this is certainly not
always true. Sometimes a test file might be reused across several
scenarios, or a single scenario might use several test files.
• integration/dms/services/
– Useful functions for use in DMS tests
• integration/dms/building_blocks/
– DEPRECATED service-like functions
make_<platform_name>_scenario.sh
make_scenario.sh
dms_common.mk
makefile (processes)
• Generic makefiles:
• DMS manages the set of .cfg files, and their various per
platform/per project customisations, with the
config.xml file.
• This describes all the information in all the .cfg files –
including all possible project/platform variations.
• The basic .cfg files are described in the BASE SET.
• The possible variations are described in the PROFILES.
• The ini file defines which PROFILES are used in a test
(under keyword “config-profiles”).
• During test start up, config.xml is expanded out into
the complete set of .cfg files required for the
particular PROFILE.
<path_to_build_tree>/vobs/SYSTEM_BIN/mips4k_gcc_x86_linux_
04/bin/mips-linux-gdb
<path_to_build_output_tree>/<process_name>/DMS_PVR_Test_
Harness/SAM_BCM_MIPS4K_LNUX_DARWIN_03/BigEndian/fs/NDS/b
in/<process_name> <corefile>
PREFS_API_TERMINAL_RegisterOperatingModeListener
(operatingModeListener);
operatingModeListener()
SYSTEMITC_API_ReadEvent()
Read
SYSTEMITC_API_PendEvent() SYSTEMITC_API_PostEvent()
• DMS_GRAPHICS_CreateApplicationWindow() is a typical
DMS service function.
call_status =
DMS_GRAPHICS_CreateApplicationWindow(playe
r_session, "epg", 1280, 720,
"/NDS/etc/arial.ttf",
&application_window);
• Creates an on-screen graphics window that text can be
written to
• Wraps 10+ calls to GFX component – much easier to use
than individual APIs!
• DMS_GUIDEAPI_SessionCreate()
– Creates a GUIDE session
– Blocks until service acquisition is complete (SPM)
– Sets up queues to handle asynchronous messages from GUIDE
– GUIDE_API_STATUS_SI_DATA_READY is returned to
DMS_GUIDEAPI_SessionCreate() when enough service
information has been acquired
Platform Component API (per engine language) Fusion-API (per engine language)
Application Engine
Application Engine
CA System Libraries
System Control & Comms Services
Media Streaming Management Module Diagnostics Net Cfg Mgmnt
SYSTEM SYSTEM SYSTEM
OBJECT TIME LOCATOR
Mgmt
SYSTEM
System Init PPPD MEMMAN
ITC
IPC
CDI/POSIX
Process Documentation
• FSION-PPD-1358-Fusion Configuration Management Strategy
• FSION-PPD-1541-Fusion Naming Conventions for ClearCase
• FSION-PPD-582-Fusion Configuration Management Process
Procedure Document
• FSION-PPD-1692-Using Merge Manager in ClearCase
• FSION-PPD-1693-Using Terminal Server for Posted Delivery
VOB Architecture
• FSION-PPD-580 FUSION ClearCase VOB Structure