1 Introduction of JMF Student : 朱浩廷 Advisor : 杭學鳴 教授.

Slides:



Advertisements
Similar presentations
Copyright © Steven Morris 2005 All Rights Reserved Downloaded from What is digital TV middleware? Steve Morris
Advertisements

T Multimedia Seminar Mobile Internet Technology Architecture (MITA) Tietoliikenne- ja multimediatekniikan laboratorio (TML) Java Video and Audio.
Global MP3 Geoffrey Beers Deborah Ford Mike Quinn Mark Ridao.
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.
Chapter 11 Media and Interactivity Basics Key Concepts
It provides a framework for embedded multimedia facilities in java enabled mobile devices.
School of Computer Science & Information Technology G6DPMM - Lecture 18 Synchronized Multimedia Integration Language (SMIL)
Lecture13 Java Media Framework II - Java Media Framework II - Processing and Controlling Media with JMF.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
DEPARTMENT OF COMPUTER ENGINEERING
Quicktime Howell Istance School of Computing De Montfort University.
Lecture12 Java Media Framework I. Streaming Media Steaming media simply means we have a stream of media coming through some kind of a media channel. Some.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Lecture14 Java Media Framework III – Some JMF Applications.
Outline of Presentation Introduction of digital video libraries Introduction of the CMU Informedia Project Informedia: user perspective Informedia:
Introduction 2: Internet, Intranet, and Extranet J394 – Perancangan Situs Web Program Sudi Manajemen Universitas Bina Nusantara.
SM3121 Software Technology Mark Green School of Creative Media.
© De Montfort University, Web Servers Chris Hand And Howell Istance De Montfort University.
XP 1 Using Multimedia on the Web Enhancing a Web Site with Sound, Video, and Applets Tutorial 8.
SET TOP BOX What is set-top box ? An interactive device which integrates the video and audio decoding capabilities of television with a multimedia application.
1 Java Media Framework Multimedia Systems: Module 3 Lesson 1 Summary: r JMF Core Model m Architecture m Models: time, event, data r JMF Core Functionality.
UNIT-V The MVC architecture and Struts Framework.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Download a free MPEG-4 Player at Digital Hollywood Broadband March 5, 2001 – San Jose, California Robert Bleidt Director, Product.
Copyright © Steven Morris 2005 All Rights Reserved Downloaded from An Introduction to the DVB Multimedia Home Platform.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Agenda Introduction Market Technologies, Standards & Big Players Services What we have done Conclusion.
DVB The DVB Multimedia Home Platform Peter MacAvock (DVB)
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Video Conferencing-introduction --- IT Acumens. COM --- IT Acumens. COMIT Acumens. COMIT Acumens. COM.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
DUE Hello World on the Android Platform.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
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.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
XP Tutorial 8New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Using Multimedia on the Web Enhancing a Web Site with Sound, Video, and.
Minor Project By: Pasang Gurung Pramod Nepal Rajendra Bdr. Thapa.
CHAPTER TEN AUTHORING.
Tutorial 7 Working with Multimedia
Tutorial 7 Designing a Multimedia Web Site
Chapter 2 Introducing Interfaces Summary prepared by Kirk Scott.
MediaServer:1 Device Template Version 1.01 Date: June 25, 2002 For UPnP™ Version 1.0 Status: Standardized DCP File from: MediaServer1.0.pdf Author: John.
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.
JMF Introduction Yuqiang Liao Content What can JMF do What can JMF do Handling Time-Based Media Handling Time-Based Media JMF Architecture.
XP Practical PC, 3e Chapter 8 1 Browsing and Searching the Web.
GWT Development with Activities and Places
Frameworks CompSci 230 S Software Construction.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
M1G Introduction to Programming 2 5. Completing the program.
© 2011 Delmar, Cengage Learning Chapter 10 Using ActionScript to Enhance User Experience.
Interfaces About Interfaces Interfaces and abstract classes provide more structured way to separate interface from implementation
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Interfaces F What is an Interface? F Creating an Interface F Implementing an Interface F What is Marker Interface?
Review of Previous Classes Declaring Variables - var myVar:DataType = value Data Types – Number, uint, String, Boolean Functions – parameters, return.
Website Design, Development and Maintenance ONLY TAKE DOWN NOTES ON INDICATED SLIDES.
Internet Computing Module II. Syllabus Creating & Using classes in Java – Methods and Classes – Inheritance – Super Class – Method Overriding – Packages.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
 The same story, information, etc can be represented in different media  Text, images, sound, moving pictures  All media can be represented digitally.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
Chapter 2 Operating Systems
DEPTT. OF COMP. SC & APPLICATIONS
Video Conferencing-introduction
What is digital TV middleware?
Presentation transcript:

1 Introduction of JMF Student : 朱浩廷 Advisor : 杭學鳴 教授

2 Introduction of MHP,JavaTV -(1) Using middleware for interactive TV development has a number of advantages. DVB developed MHP( multimedia Home Platform) as a common platform for interactive TV. The purpose of MHP is to provide a common platform for digital TV and to avoid fragmenting the market too much. This is one of the reasons why other standards bodies have taken MHP as the basis for their own standards and created a truly global 'common platform'. It makes it easier for manufacturers to hide differences in the underlying hardware, which in turn makes it easier for network operators to buy receivers from more than one vendor. It also offers a standard platform for application developers - one that provides support for those special features that are needed in the digital TV world such as low-level access to the broadcast stream, service information access, and support for the specialized graphics model of a digital TV receiver. A big market

3 Introduction of MHP,JavaTV -(2) So what does MHP do in order to establish itself as this common platform? MHP uses the application model from JavaTV as a central piece of the MHP specification, and all of the JavaTV APIs are included in MHP. 1. Anyone is free to implement the middleware. The specification can be downloaded for free, and the only costs are a small fee for compliance testing and the fees for licensing the necessary IPR from DVB. 2. Applications are written in Java or HTML, so they don't depend on any single hardware platform or operating system. The MHP specification says very little about the underlying platform and the hardware that is needed in order to give implementers as much freedom as possible. 3. MHP has defined the GEM (Globally Executable MHP) specification that allows other standards bodies to build iTV standards that are compatible with MHP while meeting the technical and commercial needs of local markets. MHP is specific to the DVB family of standards. JavaTV, on the other hand, is not. JavaTV describes a set of digital TV concepts such as accessing service information, selecting a new service, and loading files from a carousel rather than a normal filesystem, but it does so in a way that's not tied to any digital TV standard.

4 Introduction of JMF To control how audio and video content is decoded and displayed, JavaTV and MHP rely on he Java Media Framework defined by Sun Microsystems. JMF probably wasn't the ideal choice for a media control API given its strong focus on PC-based media, but it was a lot easier to use JMF than to define something new, and there are an awful lot of people who already know how to use JMF. MHP uses version 1.1 of the JMF API.

5 3 major concepts of JMF player, controls, data source By separating the object that decodes and presents the media from the object that fetches the media, we make it easier to decode and play the same type of media from more than source (and play several different media types from the same source). A Player always has an associated DataSource object - it is not possible to create a player that does not have a data source attached to it.

6 Time model-(1) JMF keeps time to nanosecond precision. A TimeBase provides a constantly ticking time source, much like a crystal oscillator in a watch. The JMF Player class is a subclasses the Clock class, so every player acts as its own clock. This media time is a time-based index into the clip, and usually it is taken as the start of the media clip. MediaTime = MediaStartTime + Rate(TimeBaseTime - TimeBaseStartTime) If the media is always being streamed, what do we mean by media time?

7 Time model-(2) Timebase getTime getNanoseconds Duration getDuration Time Time(long nanoseconds) Time(double seconds) getNanoseconds getSeconds secondsToNanoseconds Clock getMediaTime setMediaTime getRate setRate getStopTime setStopTime getTimeBase setTimeBase syncStart stop has a getTimeBase,setTimeBase can be used together to synchronize different Clocks to the same TimeBase

8 Event Model Whenever a JMF object needs to report on the current conditions, it posts a MediaEvent. MediaEvent is subclassed to identify many particular types of events. To receive notification when a MediaEvent is posted, you implement the appropriate listener interface and register your listener class with the object that posts the event by calling its addListener method. Controller addControllerListener removeControllerListener ControllerListener controllerUpdate(ControllerEvent) ControllerEvent getSourceController MediaEvent has a creates extends

9 Managers-(1) By using intermediary objects called managers, JMF makes it easy to integrate new implementations of key interfaces that can de used seamlessly with existing classes. To write programs based on JMF, you’ll need to use the Manager create methods to construct the Players, Processors, DataSources, and DataSinks for your application. If you extend JMF functionality by implementing a new plug-in, you can register it with the PlugInManager to make it available to Processors that support the plug-in API.

10 Managers-(2) Javax.media.Manager

11 Player The player creation process-(1) Given that a JMF implementation can have multiple data sources, and players to handle multiple media types. Let's consider the process of creating a player from a URL. We'll take a URL as our example, because in the end a locator also maps on to a URL. EX: Manager construct the class name of the DataSource object that it needs to create. This is calculated as..DataSource ◆ The protocol indicates the data source that is needed to access this content, where in this case, the protocol is http. ◆ The class prefix is simply a fixed string that points to the top of the class hierarchy containing the data source implementation classes. So, if our class prefix was com.stevem.media.protocol, the resulting class name would be com.stevem.media.protocol.http.DataSource 1.Create the class name of the DataSource

12 Player The player creation process-(2) 2. The DataSource is loaded and instantiated 3. The Manager uses this data source to connect to the location specified in the URL 4. The Manager uses the getContentType() method on the data source to find the MIME content type of the data that the data source is connected to and uses it to constructed the class name for the Player The MIME content type is then used to construct the class name for the Player that will be loaded. The class name takes the form...Player MIME: Multipurpose Internet Mail Extensions So, if the class prefix was com.stevem.media.players and the MIME content type was audio/mp3 (since we've connected to a URL for an MP3 file), the resulting class name for the player is com.stevem.media.players.audio.mp3.

13 Player The player creation process-(3) 6.The manager calls the Player.setSource() method to associate the data source with the player. 5. The Player is loaded and instantiated

14 Player The player state machine-(1) Unrealied StoppedStarted Prefetching prefetch deallocate, setMediaTime Transition Events: RCE:RealizeCompleteEvent PFCE:PrefetchCompleteEvent SE:StopEvent When a media Player is first created, it is Unrealized. Realized RCE A Realized Player knows what resources it needs and information about the type of media it is to present. Realizing realize deallocate A Realizing Player is in the process of determining its resource requirements. Prefetched PFCE A Prefetched Player preloads its media data, obtains exclusive-use resources, and does whatever else it needs to do to prepare itself to play. Prefetching might have to recure if a Player object’s media presentation is repositioned, or if a change in the Player object’s rate requires that additional buffers be acquired or alternate processing take place. Started stop SE start

15 Player The player state machine-(2) To prevent race conditions, not all methods can be called on a Player in every state.

16 Player There are some differences between players in DTV middleware implementations of JMF and players in the desktop PC version. The first of these differences is that some of the standard features of players in a desktop implementation are not available. These include things like the setSource() method (inherited from the MediaHandler class), since setting the data source in this way has little or no meaning in an MHP environment due to limitations imposed by the hardware. Another difference is that the selection of media may be driven more by user preferences or platform settings than would be the case in a desktop implementation. For instance, the choice of audio track or subtitles will probably be based on user preferences and the language settings in the receiver firmware, whereas a desktop implementation would typically only have to handle clips that included only one audio or subtitle language. The largest difference, however, is that players in a desktop JMF implementation will usually have a user interface or control panel attached, while in a set-top box or other consumer implementation they probably won't. The Player.getVisualComponent() and Player.getControlPanelComponent() methods will usually return a null reference in a JMF implementation for digital TV, because the media is typically played in the video layer.

17 DataSource take a closer look at the interface to the DataSource class: while a DataSource object can be constructed using a MediaLocator directly, this is not the usual way that it gets created. Instead, the Manager normally ends up calling Class.newInstance() to instantiate this object (because the middleware doesn't actually know what class it needs to load until run-time). For this reason, we have separate methods to set and get the locator as well as being able to set it using the constructor. Without an associated locator, the data source is useless. We can only set the locator once - attempting to set it a second time will generate an error.

18 Reference “Interactive TV Web”- “Java Media Framework API Guide” - media/jmf/2.1.1/guide/index.html