OCAP RI Training Nov 30 – Dec 2, 2010

Slides:



Advertisements
Similar presentations
Números.
Advertisements

Symantec 2010 Windows 7 Migration Global Results.
Trend for Precision Soil Testing % Zone or Grid Samples Tested compared to Total Samples.
Trend for Precision Soil Testing % Zone or Grid Samples Tested compared to Total Samples.
AGVISE Laboratories %Zone or Grid Samples – Northwood laboratory
Trend for Precision Soil Testing % Zone or Grid Samples Tested compared to Total Samples.
PDAs Accept Context-Free Languages
ALAK ROY. Assistant Professor Dept. of CSE NIT Agartala
EuroCondens SGB E.
Worksheets.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
Sequential Logic Design
Copyright © 2013 Elsevier Inc. All rights reserved.
Addition and Subtraction Equations
1 Introducing the Specifications of the Metro Ethernet Forum MEF 19 Abstract Test Suite for UNI Type 1 February 2008.
Create an Application Title 1Y - Youth Chapter 5.
Add Governors Discretionary (1G) Grants Chapter 6.
CALENDAR.
CHAPTER 18 The Ankle and Lower Leg
ASCII stands for American Standard Code for Information Interchange
The 5S numbers game..
突破信息检索壁垒 -SciFinder Scholar 介绍
© Tally Solutions Pvt. Ltd. All Rights Reserved Shoper 9 License Management December 09.
A Fractional Order (Proportional and Derivative) Motion Controller Design for A Class of Second-order Systems Center for Self-Organizing Intelligent.
Welcome. © 2008 ADP, Inc. 2 Overview A Look at the Web Site Question and Answer Session Agenda.
The basics for simulations
© 2010 Concept Systems, Inc.1 Concept Mapping Methodology: An Example.
Employee & Manager Self Service Overview
1 IMDS Tutorial Integrated Microarray Database System.
Figure 3–1 Standard logic symbols for the inverter (ANSI/IEEE Std
Regression with Panel Data
TCCI Barometer March “Establishing a reliable tool for monitoring the financial, business and social activity in the Prefecture of Thessaloniki”
1 Prediction of electrical energy by photovoltaic devices in urban situations By. R.C. Ott July 2011.
Dynamic Access Control the file server, reimagined Presented by Mark on twitter 1 contents copyright 2013 Mark Minasi.
TCCI Barometer March “Establishing a reliable tool for monitoring the financial, business and social activity in the Prefecture of Thessaloniki”
Copyright © [2002]. Roger L. Costello. All Rights Reserved. 1 XML Schemas Reference Manual Roger L. Costello XML Technologies Course.
Progressive Aerobic Cardiovascular Endurance Run
FAFSA on the Web Preview Presentation December 2013.
SLP – Endless Possibilities What can SLP do for your school? Everything you need to know about SLP – past, present and future.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
Facebook Pages 101: Your Organization’s Foothold on the Social Web A Volunteer Leader Webinar Sponsored by CACO December 1, 2010 Andrew Gossen, Senior.
TCCI Barometer September “Establishing a reliable tool for monitoring the financial, business and social activity in the Prefecture of Thessaloniki”
When you see… Find the zeros You think….
2011 WINNISQUAM COMMUNITY SURVEY YOUTH RISK BEHAVIOR GRADES 9-12 STUDENTS=1021.
Before Between After.
2011 FRANKLIN COMMUNITY SURVEY YOUTH RISK BEHAVIOR GRADES 9-12 STUDENTS=332.
ST/PRM3-EU | | © Robert Bosch GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying.
1 GIS Maps and Tax Roll Submission. 2 Exporting A New Shapefile.
2004 EBSCO Publishing Presentation on EBSCOadmin.
Subtraction: Adding UP
Numeracy Resources for KS2
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
WorkKeys Internet Version Training
One-Degree Imager (ODI), WIYN Observatory What’s REALLY New in SolidWorks 2010 Richard Doyle, User Community Manager inspiration.
Static Equilibrium; Elasticity and Fracture
Resistência dos Materiais, 5ª ed.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 9 TCP/IP Protocol Suite and IP Addressing.
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Lial/Hungerford/Holcomb/Mullins: Mathematics with Applications 11e Finite Mathematics with Applications 11e Copyright ©2015 Pearson Education, Inc. All.
1 © 2006 Cisco Systems, Inc. All rights reserved. Session Number Presentation_ID Using the Cisco Technical Support & Documentation Website for Online.
CDI and SIM Section EDB Nov & Dec Programme Description Objectives Helpdesk Gentle Reminder Students’ Access to SLP Module SLP Module – JUPAS.
1.step PMIT start + initial project data input Concept Concept.
A Data Warehouse Mining Tool Stephen Turner Chris Frala
Chart Deception Main Source: How to Lie with Charts, by Gerald E. Jones Dr. Michael R. Hyman, NMSU.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
Introduction Embedded Universal Tools and Online Features 2.
Schutzvermerk nach DIN 34 beachten 05/04/15 Seite 1 Training EPAM and CANopen Basic Solution: Password * * Level 1 Level 2 * Level 3 Password2 IP-Adr.
0 OCAP RI SDK July 1-2, Cable Television Laboratories, Inc All Rights Reserved. Proprietary/Confidential. 1 RI SDK Status Current State Released.
0 OCAP Reference Implementation – CableLabs tru2way Workbench October 29, 2008.
Presentation transcript:

OCAP RI Training Nov 30 – Dec 2, 2010 Presenters: Dave Hooley & Greg Rutz Location: Cox Communications 1

Schedule Day 1 – Tue Nov 30 – 9:00am to 5:00pm Introductions Project overview, history and website High-level stack and platform architecture RI Stack directory structure Build system, stack and PC platform configuration Running the RI Day 2 – Wed Dec 1 – 9:00am to 5:00pm Application Signaling Channel maps, tuners and headend video service emulation EYES tool demonstration Day 3 – Thu Dec 2 – 9:00am to 3:00pm Troubleshooting the Trio guide app on the RI CANH emulation Wrap-up 2

Project Overview and History 3

Project started June 2008 Core OCAP I16+ compliant DVR I03 extension Several ECNs short of 1.0.0 compliance DVR I03 extension Several ECNs short of I03 compliance Front Panel I02 extension Approx 200 bugs carried over legacy code base Vision Workbench/Clientsim SDK (Windows only) 4

RI Release History 1.1.1 RI on Jun 12, 2009 as part of 1.1.1 Bundle 1.1.2 RI on Sep 30, 2009 as part of 1.1.2 Bundle 1.1.3 RI on Dec 17, 2009 as part of 1.1.3 Bundle 1.1.4 RI on Jun 3, 2010 as part of 1.1.4 Bundle

Stack History 1.1.4 Bundle Release (RI 1.1.4 Rel-A): June 3, 2010 Core OCAP 1.1.3 DVR I06 Extension Front Panel I04 Extension Device Settings I03 Extension Home Networking I05 Extension Home Networking Protocol I03 RI maintenance updates to 1.1.4 Rel-B: Jul 22, 2010 Rel-C: Sep 9, 2010 Rel-D: Nov 4, 2010 Rel-E: Dec 16, 2010 (planned) 6

History – Other JVM PC Platform Tru2way SDK 7 Based on Sun open source PhoneME advanced MR2 Contributed to the PhoneME project Feb 2009 PC Platform Initially Windows XP Integrated with RI stack Dec 2008 Video decode complete; no audio decode currently Linux PC support added Dec 2009 Tru2way SDK 2008: Clientsim-based (Windows only) May 21, 2010: Rel-4 of the SDK uses TVT framework; Windows and Linux Dec 23, 2010: Rel-5 of the SDK (planned) 7

Why an RI? 8 OCAP Specifications Stubs & DTDs Release Bundle So Vang Clarify Release Bundle Test So Vang OCAP Reference Implementation OCAP Tests (CTP) Test 8

OCAP Release Bundle Components of a bundle are Specs Stubs DTDs RI CTP Cert Wave uses a single bundle Bundle is released 30 days prior to CW start ECNs are published no closer than 90 days prior to the CW 9

OCAP RI Requirements 10 RI runs on a PC – Windows and Linux RI and PC IDE must be available on open-source terms RI and PC IDE must only include components with licenses compatible with the ODL dual-license plans Components available only under GPL are not OK Licenses for all third-party RI components must be reviewed by both CableLabs and the ODL legal teams RI works with existing CableLabs ATE/CTP tests RI adheres to current and future OCAP core specs RI adheres to current and future OCAP extensions specs To ensure backwards compatibility, MSO guides must run on the RI 10

Licensing Models 11 CableLabs OpenCable Project GPL License on java.net CableLabs OpenCable Project OCAP Stack, PC Platform, Head-end Emulator Sun PhoneME Project - JVM Commercial License CableLabs Commercial License Also free Stack, platform and emulator RAND IPR commitment Bug fixes in stack contributed back Sun or other JVM vendor Commercial CDC/PBP 1.1 JVMPhoneME JVM Phil 11

Where Can I Get The RI? The Reference Implementation Site: https://ocap-ri.dev.java.net Part of the greater OpenCable project on java.net https://opencable.dev.java.net/ Specifications and Retail Branding www.opencable.com www.tru2way.com 12

What Does This Mean for Me? Stack Vendor Opportunity to make your product better Spec/stack changes (ECRs) will be better Implemented/tested prior to publishing Opportunity to offer more porting/integration/optimization services Value added support services Device Manufacturer More assurance that you device is compliant Potential shorter time to market More compliant stacks from Stack Vendors Shorter debug/release cycles Better products, with a better user experience Fewer app compatibility issues Better interoperability (Home Networking) 13

What Does This Mean for Me? Application Developer Ability to test applications against representative stack IDE/SDK coming MSO Path to fewer application compatibility issues (guides etc) Path to broader selection of interoperable, application compatible tru2way devices Better consumer experience for interactive Cable TV 14

How Can I Contribute? Join the RI project on Java.net Become a contributor Sign the CableLabs Contributor Agreement Contribute: To the OCAP stack To the PC Platform Linux support Other To the SDK development To the wiki Ask and answer questions Forum contributors 15

Project site walk through Issue Tracker Forums Wikis List of supported features Contribution Process Bug fix cutoffs Release notes Coding standards 16

Bug Tracking Two Bug Tracking Databases External IssueZilla db on java.net Internal JIRA-based RI db at CableLabs Focused on issues related to CTP and spec Linked to CableLabs Jira-based CTP, Spec dbs May be merging the 2 RI dbs in the future 17

RI Wiki Overview 18 Useful URLs https://opencable.dev.java.net Tru2way information, news, events, announcements. https://ocap-ri.dev.java.net OpenCable Reverence Implementation development. Source code, binary release(s), Issue Tracker, Forums, etc. https://devzone.cablelabs.com/widget/web/ocapri/1/-/wiki Current CableLabs hosted “Public Facing” Wiki. 18

opencable.dev.java.net Access to varying information on OpenCable, tru2Way, etc. Developer's Conferences, Interop Events, etc. are announced here... 19

ocap-ri.dev.java.net Link to CableLabs Wiki

Wiki Front Page Full Text Searching Links to 'Really Quick Start' and 'Quick Start' URLs for Subversion Repository

Quick Start (Building the RI)

Really Quick Start (Binary) 23

OCAP RI Branching Strategy Three principal branches Trunk/Development Branch Code implemented by internal RI Dev Team Code from open source contributors that are vetted by RI Tech Leads Other working branches get merged back to Mainline periodically Branded Branch (eg, “1.1.4”) Fixes and enhancements that are tied to the spec and which have been verified by the CTP Branded branch is maintained separately from mainline Changes from branded branch eventually migrate back to mainline development One branded branch per spec release Experimental Branch Open source contributors have write access to this directory No other restrictions Merging to Trunk on a case-by-case basis 24

PC Environment Requirements

Architectural Overview

Host Operating System

Platform Support Libraries

Platform Implementation

Platform API

Platform Summary Full software emulation of STB media decoding and presentation hardware. Majority of the code is 3rd party support libraries. Leverages existing frameworks: GLib – utility library. uPnP – tuner control. GStreamer – media decoding and presentation. wxWidgets – user interface. No OS abstraction APIs.

OCAP Porting API

OCAP Native Library

OCAP JVM

OCAP Java Implementation

OCAP API

Directory Structure & Java Package Descriptions 37 37

RI Stack Directory Structure ri/RI_Stack is the root of the stack ($OCAPROOT) Formerly OCAP-1.0 apps Xlets, Xlets, Xlets QA Integration Xlets, Watch TV, TuneTest Some more up-to-date than others assets Test root certificates used to when running authenticated CTP tests Standard fonts bin Binary and other runtime products for all ports Some configuration files 38 38

Directory Structure -- continued docs Various system documentation hostconfig Host (not target) build configuration files java “filelist” files and Java build configuration files src Java source files, organized by extension test JUnit source files, organized by extension Out of date 39 39

Directory Structure -- continued jni JNI C source files, organized by extension jvm ocap_vmlib RI Stack/VM integration library Java and JNI source code phoneME All source and build files related to the phoneME Advanced VM Your VM Here 40 40

Directory Structure -- continued mpe mgr Function table management Platform-independent C source include MPE API headers os Include MPEOS API headers Your MPEOS port here Test MPE unit tests Base on CUnit framework Out of date 41 41

Directory Structure -- continued target Target-specific build files thirdparty Open source (non-GPL) libs used by the stack with extensive modifications DirectFB, FreeType, Zlib tools Unmodified open source (non-GPL) libs used by the stack JUnit, NanoXML, cybergarage uPnP, Log4J, etc.. cybergarage is heavily modified and probably should move to “thirdparty” 42 42

Java Packages org.dvb, org.havi, org.davic, org.ocap javax.tv Specification defined packages javax.tv JavaTV org.cablelabs.debug Logging and profiling org.cablelabs.impl Java implementation packages 43 43

Build System 44 44

Build Tools Make Ant JDK (1.4 or higher) Compiles JNI, MPE, MPEOS, and thirdparty native libraries Ant Coordinates the entire build system Wiki contains a list of top-level build targets JDK (1.4 or higher) Used to compile stack and test application sources 45 45

Build System – Environment Variables Easy to work in several different RI code bases at the same time. OCAPROOT The absolute path to the ri/RI_Stack directory. Required for compilation/execution OCAPHOST Defines the host build environment Build system reads host environment configuration files from ($OCAPROOT/hostconfig/$OCAPHOST) Required for compilation only 46 46

Build System – Environment Variables OCAPTC The Target Configuration for the build. Basically the port you are working on. Defines a subdirectory hierarchy where: build configuration files are found ($OCAPROOT/target/$OCAPTC) binary intermediate products are built $(OCAPROOT/gen/$OCAPTC) final binary products are installed and runtime configuration files are kept ($OCAPROOT/bin/$OCAPTC) Suggested format is: <org>/<platform>/<os>/[debug|release] CableLabs/simulator/Linux/debug Required for compilation/execution 47 47

Stack and Platform Configuration 48 48

Stack Configuration – Native mpeenv.ini Configuration parameters for SI, ObjectCarousel, JVM, and more… For the RI Platform, mpeenv.ini is located in $OCAPROOT/bin/$OCAPTC/env For a specific port, it can be located anywhere Stack boot module must pass the location of this file to one of the MPE managers 49 49

Stack Configuration – Java Java properties files, per extension Located in $OCAPROOT/java/src/<module>/<module>.properties Do not modify these files Modules are organized into a precedence hierarchy defined in $OCAPROOT/java/src/base/org/cablelabs/impl/manager/props.properties Do not modify this file Stack can choose to use a single property value based on highest module preference or aggregate the property values for all included modules Helps with separable extension builds “final.properties” is the final user-level override file for Java configuration properties. Must be found in the root of a classpath entry. Place your user-specific overrides in this file to modify stack behavior. For PC Platform, located in $OCAPROOT/bin/$OCAPTC/env 50 50

Stack Configuration – Java <cont> Most common final.properties overrides OCAP.mgrmgr.manager.Auth=org.cablelabs.impl.manager.auth.AuthManagerImpl Enable application authentication. Default is disabled OCAP.mgrmgr.manager.OcapSecurity=org.cablelabs.impl.manager.security.NoAccessControl Disable Java permission checks. Default is enabled OCAP.xait.ignore=true Disable XAIT acquisition entirely. Only hostapps are loaded. OCAP.cablecard.manufacturer=<id> Override CableCARD manufacturer ID returned by the platform

PC Platform Configuration – Launcher platform_<os>.cfg Platform-specific bootstrapper for the PC platform Launches PC Platform set-top emulator 1 or more applications (in shared libs) OCAP Native app (Blu-Ray Player) Located in $PLATFORMROOT 52 52

PC Platform Configuration – STB/Headend Emulator platform.cfg Configuration parameters for UI, OOB, frontpanel, backpanel, display, Headend emulation Configuration values can contain environment variables $(<env_var>) Located in $PLATFORMROOT 53 53

Setting up Graphics Resolution Platform Window size from RI.Emulator.TvScreen.width RI.Emulator.TvScreen.height (platform.cfg) TV Screen size from DISP.DEFAULT.CONFIG (mpeenv.ini) Video scaled according to incoming video size and applicable DFC rule 54 54

Coherent Configurations DISP.DEFAULT.CONFIG Configuration 640x480 1:1 graphics, 720x480 8:9 video, 640x480 1:1 background 1 640x480 1:1 graphics, 720x480 8:9 video, 720x480 8:9 background 2 960x540 3:4 graphics, 720x480 8:9 video, 640x480 1:1 background 3 960x540 3:4 graphics, 720x480 8:9 video, 720x480 8:9 background 4 640x480 4:3 graphics, 1920x1080 1:1 video, 1920x1080 1:1 background (with I-frame support) 5 960x540 1:1 graphics, 1920x1080 1:1 video, 1920x1080 1:1 background (with I-frame support) 55 55

CableCARD Emulation Very limited CableCARD emulation Generic Features Only PC Platform uses DRI to communicate with CableCARD $RICOMMONROOT/resources/GpnvsDatabaseFile.xml Values are either strings or base64 encoded binary from CCIF specification 56 56

Running the RI 57 57

runRI.sh Main execution script for the RI PC Platform runRI.sh –help Lots of options ATE Setup for test Xlets Native debugging Located in $PLATFORMROOT

Logging and Debugging 59 59

Stack logging Stack logging verbosity managed in mpeenv.ini Example: LOG.MPE.JAVA = ALL DEBUG Logging may affect performance/timing (reset to DEFAULT if problems encountered) Java stack code uses log4j – configurable via $OCAPROOT/bin/$OCATPTC/env/log4j.properties Useful links on Wiki – search for ‘logging’ 60

Platform logging Platform code uses log4c to manage logging Configuration found in $PLATFORMROOT/log4crc Useful links on Wiki – search for ‘logging’ 61

Logging and IssueTracker When attaching a log to IssueTracker Ensure the log contains timestamps Helpful if Java debug logging is enabled 62

Chainsaw screenshot 63

Java Stack debugging Possible to step through breakpoints in Java stack code, generate stack traces and thread dumps Stack trace, thread dumps available via jdb (included with the Sun JDK) To enable Java debugging, un-comment VMOPT19 & 20 in mpeenv.ini and start debugger or jdb Re-comment VMOPT 19 & 20 when done.. 64

Platform debugging gdb can be used to generate a trace if the Platform terminates unexpectedly ./runRI.sh -gdb 65

Eclipse Eclipse .project and .classpath files for RI Stack code available from me Java debugging Native code debugging (not me) Debugging demonstration 66

Performance and Profiling 67

Eclipse PlatEval Profiling OCAP specification hooks coming in 1.2 Xlet contributed by Comcast/TVWorks. Measures time for basic JVM operations Array fills Graphics operations Fonts Profiling Netbeans profiling support See Wiki page OCAP specification hooks coming in 1.2 68

Application Signaling 69

XAIT – MPEG Sections Captured XAIT from real signaling source Headend Software tool $RICOMMONROOT/resources/fdc-files.txt Forward Data Channel (DRI2.0 terminology for OOB data pathway) Filelist indicating MPEG2 section files to be “played out” Actual MPEG2 section files must be located in $RICOMMONROOT/resources/fdcdata Playout interval specified in $PLATFORMROOT/platform.cfg RI.Platform.OOBTableRequestPeriod File is read every interval Trigger signaling changes

XAIT – File-Based Signaling Provide all the components of XAIT/AIT signaling in file format File should be located in the classpath xait.properties ait.properties hostapp.properties See the wiki for a complete description of fields

Headend Video Service Emulation Channel Maps, Tuners, Headend Video Service Emulation 72

PC Platform Emulation Channel Map Video Source Tuners SCTE 65 SI MPEG transport stream files SPTS MPTS Live QAM modulated transport streams HDHomerun Tuners PC Platform can be configured to use either of these video sources and respond to “tune” requests. MPEG transport stream delivered to platform media pipelines

Service Information (SCTE 65) The RI stack builds its channel map from the following tables NIT CDS Subtable (Transport carriers) MMS Subtable (Modulation Modes) SVCT NTT SNS Subtable (Channel names) No file-based emulation for SI. MPEG2 sections only $RICOMMONROOT/resources/fdc-files.txt Same as XAIT Playout interval same as XAIT

Acquiring SI Capture from actual headend Tru2way Workbench Others? CableLabs EYES tool Other mechanism Tru2way Workbench Others?

Video Sources PC Platform limitations PC Platform only has MPEG-2 decoder No audio decoding support Non-encrypted streams only Configure number of “tuners” (simulataneous video sources) $PLATFORMROOT/platform.cfg RI.Platform.numTuners MPEG-2 Files VLC sends transport stream via localhost UDP connection platform.cfg determines QAM carrier mapping Can capture files from live QAM source using HDHomerun Live Source HDHomerun decodes QAM modulated transport stream and streams via localhost TCP

VLC Tuners Separate VLC process launched to stream TS file $RICOMMONROOT/resources/<Win32/Linux>/VLC Configuration ($PLATFORMROOT/platform.cfg) RI.Platform.ipAddr Set to 127.0.0.1 RI.Headend.TunerType = VLC RI.Headend.tuner.x.TunerStreamerPort Port that VLC will listen for commands RI.Headend.tuner.x.StreamerIp VLC process can run on a separate machine RI.Headend.tuner.x.TunerRxPort Port the PC Platform will open to listen for transport stream packets RI.Headend.tuner.x.tunerNum Not used

VLC Tuners <cont> When a platform “tune” request is received VLC Process launched VLC directed to stream a file based on the “carrier map” in platform.cfg RI.Headend.vlc.frequency.<Hz>_<QAM> = <file> Program numbers in transport stream file must match up with channel map (SCTE 65 data)

HDHomerun Tuners Command line utility used to set HDHomerun tuners and streaming parameters $RICOMMONROOT/resources/<Win32/Linux>/HdHr/hdhomerun_config.exe Configuration ($PLATFORMROOT/platform.cfg) RI.Platform.IpAddr Set to your PC’s IP RI.Headend.TunerType = HDHR RI.Headend.tuner.x.tunerNum Tuner ID on back of HDHomerun (0 or 1) RI.Headend.tuner.x.tunerRxPort Port the PC Platform will open to listen for transport stream packets RI.Headend.tuner.x.streamerPort HDHomerun DeviceID (bottom of HDHomerun). Specify as hex with 0x prefix. RI.Headend.tuner.x.streamerIp Not used

Examine Your Edge System EYES Examine Your Edge System 80

<tru2way> Workbench SDK 81

RI SDK Status - 1 82 Final Release Binary distribution package of RI Emulator Bundle Package released 6/4/10 Standalone Configuration using Headend UPnP Simulator Windows: http://ri.opencable.com/ri/builds/releases/1.1.4-RelA/ocap-ri-tags-RI-I1_1_4_REL_A-8598-Setup.exe Linux: http://ri.opencable.com/ri/builds/releases/1.1.4-RelA/ocap-ri-tags-RI-I1_1_4_REL_A-8598-Linux.exe Two supported RI Emulator UI targets wxWidgets on Windows XP wxWidgets on Linux - Fedora Core 10/11 Two unsupported emulator targets For debugging purposes only; no formal QA testing Native Windows (TvScreen only) Native Linux (TvScreen only) SDK integration with Eclipse IDE Rel-4 released 5/21/10 Version 3.4.2; use SDK/3rdParty/Eclipse packages JRE 1.6.0_8 or later Update Site: http://ri.opencable.com/sdk/updates/eclipse.3.4.2/stable/latest/ Two supported SDK targets Windows XP Linux – Fedora Core 10/11 No subsequent releases planned for 2010 82

RI SDK Status - 2 Support TWBQuickStart Guide ocap-ri.dev.java.net Development Forums Rely on open source contributions We need your help!!! 83

SDK Software Components RI Bundle Package RI Emulator and default configuration files (platform.cfg, mpeenv.ini, etc.) OCAP API Stubs and Javadocs RI Bundle Manifest C:\CableLabs\tru2way\tags-RI_I1_1_4_REL_A-8598\ocap-ri\twb_support\RIBundleManifest.xml Image Map Editor Create new remotes and front panel UI Proprietary file format containing image data and hotspot location coordinates remote.im – Virtual remote image map frontpanel.im – Virtual front panel image map Image Map Viewer View .im files Eclipse Plugins TVT Framework Plugins TVWorks contribution Xlet Service Configuration, Channel Map Editor, Launch Configuration Support 15 plugins; org.tvt namespace <tru2way> Workbench Plugins enableTv contribution and CableLabs implementation Integration between RI Bundle and TVT Framework 5 plugins; org.tru2way.twb namespace 84

RI Emulator UI 85

<tru2way> Workbench SDK UI 86

SDK Features - 1 87 RI Emulator Standalone configuration supported All OCAP application types supported (Bound/Unbound) Executes in Run and Debug modes Provide virtual TV Screen, Front Panel, Remote and Console for user presentation and IO Support for following coherent device configurations: 640x480 – 4:3, 960x540 – 4:3, 640x480 – 16:9, and 960x540 – 16:9 Messages from ODL stack and application captured in external log as well as displayed in Console UI Output can be filtered based on category and level Configurable emulation Via configuration parameters on start-up (mpeenv.ini and final.properties) 87

SDK Features - 2 88 Headend – UPnP Emulator Delivers MPEG-2 Transport Streams for video play back (no audio) One or more elementary stream Pre-recorded files and live transport streams Delivers PAT/PMT InBand via Transport Stream Delivers SI OOB Pre-defined sections Tuning support by [frequency, QAM, program] tuple as well as source ID XAIT signaling via file configuration (i.e. xait.properties consumed directly by stack) AIT signaling via file configuration (i.e. ait-1234.properties consumed directly by stack) Initiate/terminate pre-recorded EAS message Configurable emulation Via configuration parameters on start-up 88

SDK Features - 3 89 <tru2way> Workbench Eclipse Integration RI Emulator Bundle Registration Bundle independent of Eclipse plugin framework Support for multiple bundles Headend Simulation Generates OOB section data OCAP Project RI Bundle selection Application templates Xlet Service Configuration XAIT configuration Permission Request File (.prf) configuration Channel Map Editor Run/Debug Launch Configuration Modes OCAP API Javadoc hover 89

SDK Architecture - 1 90

SDK Architecture - 2 91

SDK Architecture - 3 92

SDK Source 93 SDK Root Image Map Editor Image Map Viewer TVT Framework https://community.cablelabs.com/svn/OCAPRI/trunk/SDK/ Image Map Editor SDK/ImageMapEditor/ Image Map Viewer SDK/ImageMapViewer/ TVT Framework SDK/tvt/ <tru2way> Workbench SDK/tru2wayWorkbench/ Third-party dependencies SDK/3rdParty Eclipse snapshots xerces libpng libcurl 93

SDK Enhancement Request - 1 Open Source Community Contributions Support for application developers Support for testing OCAP Stack features User level documentation Sample applications Simple WatchTv Simple DVR Simple Home Networking 94

SDK Enhancement Request - 2 RI Emulator Device Settings User Interface (Back Panel UI) Online HTML Help Browser User document submissions Command Plugin Framework (Dynamic UI Modules) Add UI elements to the wxWidgets UI at runtime Enhance static Menu and Toolbar integration capabilities Full-screen TvScreen Window (if possible in wxWidgets) Show/hide video and graphics planes DirectFB 1.0 and support for OpenGL hardware acceleration Additional target platforms: Windows 7, Ubuntu, Mac OS X Better integration with Eclipse launch configuration manager as part of OCAP Project workflow Setting debug output levels Multiple tuner configuration 95

SDK Enhancement Request - 2 Headend – UPnP Emulator XAIT table generation and delivery AIT table generation and delivery Better integration with Eclipse launch configuration manager as part of OCAP Project workflow CableCard/POD configuration Dynamic delivery of OOB SI data HDHR configuration 96

SDK Enhancement Request - 3 <tru2way> Workbench Eclipse Integration Add support for Unbound applications Complete Launch Configuration Simulator Tab UI Additional application templates: Tuning, IXC, HAVi, DVR, HN, etc. OCAP Project export Channel Map export Xlet configuration export (.properties generation) Online documentation through Eclipse Help Tips and tricks documentation OCAP API cheat sheets 97

Application Development Workflow 98

SDK Demo RI Bundle Installation <tru2way> SDK Installation RI Bundle Registration Creating a new OCAP Project Creating a Xlet Service Configuration Creating a Launch Configuration Executing the Xlet Debugging the Xlet Stopping RI Emulator execution 99