Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Differences between MHP and pure Java environments Steve.

Slides:



Advertisements
Similar presentations
HbbTV Hybrid broadcast broadband TV EBU / ETSI Hybrid Broadcast Broadband Workshop Amsterdam, 9 th September, 2009.
Advertisements

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from What is digital TV middleware? Steve Morris
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Using Multimedia on the Web Enhancing a Web Site with Sound, Video, and Applets.
CNIT 132 – Week 9 Multimedia. Working with Multimedia Bandwidth is a measure of the amount of data that can be sent through a communication pipeline each.
CompSci Applets & Video Games. CompSci Applets & Video Games The Plan  Applets  Demo on making and running a simple applet from scratch.
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
1 L45 Multimedia: Applets and Applications. 2 OBJECTIVES  How to get and display images.  To create animations from sequences of images.  To create.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Mobile Application Development
Macromedia Dreamweaver 4 Advanced Level Course. Add Rollovers Rollovers or mouseovers are possibly the most popular effects used in designing Web pages.
The Internet & The World Wide Web Notes
Web Design Basic Concepts.
Client/Server Architectures
Modern TV Technologies Vassilis Tsetsos, Ph.D.
Microsoft Visual Basic 2005 CHAPTER 8 Using Procedures and Exception Handling.
Chapter 11 Adding Media and Interactivity. Flash is a software program that allows you to create low-bandwidth, high-quality animations and interactive.
CS378 - Mobile Computing What's Next?. Fragments Added in Android 3.0, a release aimed at tablets A fragment is a portion of the UI in an Activity multiple.
Copyright © Steven Morris 2005 All Rights Reserved Downloaded from An Introduction to the DVB Multimedia Home Platform.
Chapter 4 Dreamweaver: Part II The Web Warrior Guide to Web Design Technologies.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 16: Java Applets & AWT Fundamentals of Web Programming.
Chapter 12 Applets and Advanced Graphics  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets.
© Cheltenham Computer Training 2001 Macromedia Dreamweaver 4 - Slide No 1 Macromedia Dreamweaver 4 Advanced Level Course.
DVB The DVB Multimedia Home Platform Peter MacAvock (DVB)
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Applets & Video Games 1 Last Edited 1/10/04CPS4: Java for Video Games Applets &
Copyright © 2008 Pearson Prentice Hall. All rights reserved. 1 Exploring Microsoft Office Word 2007 Chapter 7 The Advanced User Robert Grauer, Keith Mulbery,
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
TRAD lmtb Developing DVB-Java Applications Richard Houldsworth Philips Research
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Applets Chapter 17.  Java’s big splash onto the scene came in the mid 90’s. The people at Sun Microsystems had managed to work java programs into Web.
Java Software Solutions Lewis and Loftus Chapter 10 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphical User Interfaces --
XP Tutorial 8New Perspectives on HTML and XHTML, Comprehensive 1 Using Multimedia on the Web Enhancing a Web Site with Sound, Video, and Applets Tutorial.
Lesson 1 What is Camtasia?. Lesson 2 Editing Objectives After completing the lesson, the student will be able to: Edit a basic recording Camtasia file.
Philips Softworks CONFIDENTIAL Opportunities in MHP & MPEG-4 Presentation at ITU MediaCOM 14 th March 2002 Paul Bristow Strategic Technologist, Philips.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
MULTIMEDIA DEFINITION OF MULTIMEDIA
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Chapter 12 Applets and Advanced GUI  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets F.
CHAPTER TEN AUTHORING.
Tutorial 7 Working with Multimedia
Tutorial 7 Designing a Multimedia Web Site
Overview of Android Application Development
Java Threads. What is a Thread? A thread can be loosely defined as a separate stream of execution that takes place simultaneously with and independently.
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
CSC 205 – Java Programming II Applet. Types of Java Programs Applets Applications Console applications Graphics applications Applications are stand-alone.
Automated GUI testing How to test an interactive application automatically?
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
Introduction to Flash Animation CS 318. Topics Introduction to Flash and animation The Flash development environment Creating Flash animations  Layers.
Chapter 14 Applets and Advanced GUI  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets F.
1 Applets. 2 What is an applet? Applet: a Java program that can be inserted into a web page and run by loading that page in a browser brings web pages.
Prepared By: Disha Ruparelia ( ) Pooja Patel ( ) Krupa Rajdev ( ) Misari Thakkar ( ) Guided By: Rohit Sutariya.
Introduction to Android OS Димитър Н. Димитров Astea Solutions AD.
CHAPTER 4 Fragments ActionBar Menus. Explore how to build applications that use an ActionBar and Fragments Understand the Fragment lifecycle Learn to.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
Integration between Digital Terrestrial Television and Internet by means of a DVB-MHP web browser Irene Amerini, Roberto Caldelli, Rudy Becarelli, Francesco.
Java Look-and-Feel Design Guidelines
Activities and Intents
BTEC NCF Dip in Comp - Unit 15 Website Development Lesson 05 – Website Performance Mr C Johnston.
Modern TV Technologies
HbbTV Hybrid broadcast broadband TV
UNIT-5.
What is digital TV middleware?
Presentation transcript:

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Differences between MHP and pure Java environments Steve Morris

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from MHP is not Java MHP is based on a subset of personalJava 1.2 Several major elements are removed –Some to save space –Some because the functionality isn’t needed Several major parts added –Additional APIs for STB-specific functions –Places where functionality needed is too different from standard Java Some changed –UI model reflects the consumer, TV-centric model rather than the PC/workstation model

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from MHP is not just Java We can’t forget HTML (added in MHP 1.1) –Allows different types of applications to be mixed (and embedded in each other) Some applications are suited to development in Java –Applications with lots of processing, e.g. games –Applications that need to draw complex graphical displays Some are more suited to HTML –Information services –But, beware of the overhead of using DVB-HTML

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The main differences There are four major sets of differences Those in the basic Java classes –Removed/changed functionality –Changed application model Changed UI support –To handle TV display environment Additional APIs –Adding extra TV-specific functionality Security –Increased paranoia and more restrictions

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Changes in the core Java classes Some parts of java.lang are not supported –Loading dynamic libraries –Exiting the VM –These make no sense in an STB environment Some classes from java.text not supported –Locales are mostly not included –This saves a LOT of space –STB implementers can add extra locales for specific markets, but these are not standardized by DVB Other bodies may standardize them later, however

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Changes in the core Java classes (2) Filesystem access is changed –java.io is still used, but STBs may not have a local filesystem –Mainly used for DSM-CC access instead –Support for features specific to DSM-CC added as a new API Network access –Most of java.net is not included An MHP receiver need not have a return channel –Only java.net.URL actually supported With heavily modified behavior –More of java.net may be included in the Internet Access profile and in future versions

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The application model Similar to Java applets –MHP applications are called ‘xlets’ instead –Applications lifecycle is controlled by the middleware Just like an applet in a web browser –Many xlets can run simultaneously in a single service Like multiple applets in the same web page Applications can be started, stopped, paused and resumed –But no-one knows what ‘pausing’ an application really means –Applications should use the least amount of resources (and no scarce ones) when paused –Apps should not claim resources until they are actually started

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The application model Control of applications is handed by the Application Manager –Part of the MHP middleware, but not a formally defined component –Handles requests from the broadcaster (application signaling) and from the user to change an application’s state –Also handles requests from other applications via the org.dvb.application API –The middleware is always in control of the application state –Other parts of the system (including the user) can only request state changes, not demand them.

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Other application issues MHP specifies that each application is loaded through a separate classloader –This means that an app can’t get references to objects in another app –Improves security –Makes application management much easier Since no external references to application objects –Inter-xlet communication carried out using separate API Native code is NOT supported –JNI may not be used –Interoperable applications can not use native code, for obvious reasons

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Extensions The JavaTV APIs –Contained in javax.tv.* –Xlet classes and infrastructure –Service selection –SI/PSI access –Media control extensions Common DTV functionality that is not limited to DVB systems –Not dependent on compliance with DVB standards, e.g. US cable and satellite markets Standardized by Sun Microsystems –

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Extensions (2) The DAVIC APIs –Contained in org.davic.* –Basic MPEG concepts –Tuning between transport streams –MPEG-2 section filtering –Resource management –Access to CA information Lower-level functionality, mainly related to MPEG decoding and infrastructure issues Standardized by DAVIC –

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Extensions (3) The HAVi APIs –Contained in org.havi.* –Video/graphics integration –UI widgets for consumer systems and TV screens Concerned with graphical issues –Especially with solving the problems of using Java widgets in a TV environment –Also solves issues relating to video and graphics integration Hardware-imposed restrictions that do not apply in a PC Standardized by HAVi –

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Extensions (4) The DVB MHP APIs –Contained in org.dvb.* –Access to SI/PSI –Application management –Access to DSM-CC object carousels –Return channel session management –Inter-Xlet communication Added to provide functionality not supported (or badly supported) by other APIs Standardized by DVB –

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Service information access Two different APIs –One of the few cases of MHP using two different solutions org.dvb.si.* –DVB specific –Provides access to all DVB-defined tables (Except the AIT) javax.tv.service.* –Independent from the underlying technology –Supports access to most SI data, but accessing DVB tables is harder –Designed for commonality with US markets

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Service information access Both APIs are asynchronous –Since filtering SI tables can take time if they’re not cached Most people use org.dvb.si.* for developing MHP apps –It’s closer in structure to DVB SI tables –More natural to use for DVB applications –JavaTV only useful if you’re designing for DVB and non-DVB markets

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Media control Media control via JMF 1.0 –Control over MPEG-2 and audio clip presentation Play/pause/change content Will never tune to a new TS Application must explicitly tune if necessary Some changes in behavior for MHP –Reflect differences between broadcast and non-broadcast applications –These differences can be major e.g. No way of controlling playback of broadcast media Some additional controls for broadcast-specific functions –Split across several packages –org.davic.media.* + org.dvb.media.* + javax.tv.media.*

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Media control New JMF controls add TV-specific functions –Subtitles –Scaling/positioning –Decoder format conversion Some controls not present –Less AWT support because it’s not necessary Most STBs will display video in the background using HW decoding –PC-specific controls dropped New content referencing method + URL format defined to reference DVB services and streams –Locator + its siblings

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Media control Limited support for static media types –MPEG audio files and video ‘drips’ only –Mainly used for accessing broadcast video No support for video from a file –Loading data from file takes too long Video ‘drip’ support adds efficient graphics for STB use –Sequence of MPEG frames –MPEG I-frame as first image –P-frames modify the image without needing to replace the whole image –Efficient control of multi-stage presentation where only some elements change

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Filesystem access java.io is used to access a filesystem –This includes DSM-CC and persistent filesystems –Some extensions to support these –Easy to use for most purposes – just like standard Java org.dvb.dsmcc adds support for DSM-CC functionality –Things that don’t exist (or are less important) in a normal PC filesystem –Stream events, Normal Play Time –Asynchronous loading of files –Caching hints –Notification of object changes

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Filesystem access Restrictions –No absolute paths These may vary between implementations Even relative paths should be used with care –No write access to a DSM-CC object carousel It is possible to use just java.io to access filesystems –But at a price –Some important functionality will not be available –Much more care needs to be taken with latency

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Service selection Java TV service selection API used to control what service is being presented –javax.tv.service.selection –This affects the lifecycle of applications –Any apps not signalled on the new service will die –Changes the whole service, including applications and media Like changing to a different TV channel DAVIC tuning API supports access to different transport streams –org.davic.net.tuning –Allows access to data on a different transport stream –Changes the TS only, no media presentation –Applications will not be killed

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from User input An STB probably has no keyboard –The only interoperable way to get input into the STB is via a remote control –This generates standard Java key events –The supported key codes are defined by MHP and HAVi others may be used, but aren’t interoperable A standard set of remote keys is defined, e.g. Arrow keys, OK, exit, digits MHP also defines a separate user input event API to support exclusive key access –org.dvb.event –Used for entering PINs, etc.

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The graphics model Big changes to the UI library and graphics model Standard AWT widgets are not available in MHP –Button, etc. –Lightweight components only –AWT windowing model changes a lot The HAVi widgets can be used instead Applications can also build their own widgets –This seems to be the most popular choice –Allows a more TV-centric UI experience

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The graphics model Transparency & alpha-blending added to AWT –Not supported in Java 1.1 (added in 1.2) –Added by org.dvb.ui.DvbColor class –Allows graphics to be overlayed on video org.dvb.ui package adds functionality missing from other UI extensions –TV-specific Text layout support –Alpha compositing between planes –Font loading for downloaded fonts

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from The HAVi widget set org.havi.ui includes some basic widgets –Buttons, check-boxes and radio buttons –Text entry fields –Static text –Icons –Dialog boxes –Animations Also contains higher-level concepts –HContainer, HComponent and others Replace Java functionality where needed –Resource management for graphics-related components

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Window management issues STBs will probably not have a full window manager –No need for all the functionality –Too complex for most STBs –Need to restrict access to the AWT hierarchy Can’t use an AWT Frame as the top-level component So how can different applications share the screen? –HW may impose limitations not found in a PC environment We use HScenes instead –A HAVi replacement for Frames

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from HScenes An HScene solves the problems with Frames –From org.havi.ui –Implements java.awt.Container –Doesn’t require a window manager But it doesn’t preclude it either –Anything that gets drawn into the HScene gets clipped at the edges of the HScene HScenes control: –Which application has input focus –How applications are laid out on screen –Which applications are currently visible

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from HScenes Acts as the top-level GUI component for any MHP application –Only one HScene is allowed for every application –(Actually one Hscene per display device) The application cannot see higher in AWT hierarchy than its own HScene –HScenes from other applications are not visible to this application –Applications can’t interfere with one another

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from HScenes in the UI model HScene Component HScene Component Container HScene Frame Component Container HScene Component HScene

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Display devices A TV has different display characteristics than a PC monitor –We need to include this in the display model The HScreen class represents a physical display device –This ties together all MPEG decoding, graphics and backgrounds –Models the use of graphics planes in the STB hardware Each HScreen consists of several lower-level devices

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Modelling graphics hardware Three basic types of device in the HAVi display structure –Each models a different graphics plane (or planes) in the display hardware HGraphicsDevice – used for application graphics and cursors HVideoDevice - used to present video from the MPEG decoder HBackgroundDevice - used to display either a still image or a plain colour These are all subclasses of HScreenDevice

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Display structure HGraphicsDeviceHVideoDevice One HScreen for every physical display device Possibly more than one of each type of device for an HScreen –Depends on the underlying hardware –May support multiple HGraphicsDevice instances HScreen HBackgroundDevice

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Communication between apps RMI-like API for inter-xlet communication –Same philosophy but classes are changed to reduce overhead –Does not use TCP/IP Reduces communication overhead –Does not need precompiled stubs –Does not support communication outside the receiver For this, RMI must still be used

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Security MHP is paranoid –Much more so than standard Java –Stops applications doing dangerous/resource-intensive operations unless they are trusted –Only the operator can decide to trust an application Applications need signing to use many APIs –e.g. Return channel access, section filtering –Signature files broadcast as part of the application directory structure –Extra permissions defined by MHP to handle the new functionality

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Summary Java developers will adapt easily to MHP But, some changes are needed to get the most from your application –Improved performance –Increased functionality –Increased reliability Developing for TV needs a different philosophy –And this is reflected in the MHP APIs

Copyright © Steven Morris 2005 All Rights Reserved Downloaded from Questions? For more information: – – –“Interactive TV standards”, S. Morris & A. Smith-Chaigneau (Pub. Focal Press, ISBN ) Copyright © Steven Morris All rights reserved.