JavaTV API Technical Overview

ѱ

Version 1.0

: Sun Microsystems. November 14, 2000

: ̼ 2001-12-27, rainmkr@hanmail.net

  1. Introduction
  2. Environment
  3. Service and Service Information
  4. Service Selection
  5. JMF
  6. Braodcast Data APIs
  7. Application Life cycle

Introduction

ڹٸ interactive TV content ϴ ڸ ڹ ÷ Ȯ JavaTV API ϰ ִ. JavaTV API Java programming  ̿Ͽ TV ű Set-top box ϴ α׷ Ѵ.

JavaTV API ߿ application ڵ鿡 broadcast network technology application ϱ ؼ ̴. , ø̼ǵ service information databaseκ ⺻ ʿ Ѵ( ̸ Ʈ ). JavaTV API ø̼ ȹԿ ־ ϰ ִ service information protocol ִ abstraction Ѵ. ̰ application ѹ ۼ ٸ Ʈ ȯ濡 ִ Ѵ. JavaTV API ϵ over-wire protocolκ abstraction ǵ Ǿ ִ.

JavaTV API Ϲ 𼭳 ϰ ϱ ø̼ ȯ濡 ̴(??). , API network API ø̼ ȯ濡 ȴ.  쿡, set-top box ٸ Java extention Ǿ ִ. , telphone service ϴ set-top box JavaPhone API Ǿ ̴.

Ʒ ׸ receiver Ǿ JavaTV API application environment ְ ִ. α׷Ӵ application JavaTV API application environment ۼϰ, ׵ ۼ application RTOS ϵ ڼ ׵ ˾ä ϰ ϰѴ.

[׸1] A Typical Television Receiver Implementation

JavaTV API ϴ API ҵ javadoc ǥ APIʹ ٸ form ַ ϰ ִ. ֳϸ JavaTV API ɼ ؼ Ǿ ְ, ּ Ǵ ɰ õ ϵ Ʈ 䱸 ʱ ̴.

    1. Television Receviers

Television receiver Ƴα ȣ, ȣ Ǵ ٸ óѴ. ȣ Ϲ , ̺, Ʈ receiver ۵Ǿ . ȣ Ƴα ȣ پ content ִ. ȭ audio-video Բ پ ִ. Television receiver ɰ . JavaTV API ̿ Ϲ receiver ã ִ ɰ ٸ receiver Ѵ.

ٸ پ receiver , receiver ϴ Ʈ connection ũ ִ. Enhanced broadcast receiver, interactive broadcast receivers, multi-network receivers. receiver Ʒ Ǿ ִ ó type ɷ ϰ ִ.

  1. Enhanced Broadcast Receivers
  2. Enhanced Broadcast receiver ȭ ׷, ̹, ؽƮ Բ TV , Ϻκμ ڹپ ϴ α׷ ִ. ̿ receiver local viewer interaction, including input from a remoete control, on-screen graphical elements, multiple aoudio-video stream ߿ , display switching Ѵ. Enhanced broadcast receiver head-end Ǵ κ, broadcast file system data Ѵ. , enhanced broadcast receiver braodcasterο return channel ϸ, head-end Ǵ interaction .

  3. Interactivie Broadcast Receivers
  4. Interactive broadcast receivers head-end Ǵ ִ broadcaster return channel Ѵ. ̿ receiver ڻŷ, video(VOD), ̸, ׸ ä ȭ ִ. Interactive broadcast receiver Enhanced broadcast receiver ã ִ ɷ Ѵ.

  5. Multi-Network Receivers

Multi-Network Receiver broadcast network return channel ̻ ٹ Ѵ. Multi-network receiver Internet capable receiver ȭ Ÿ ٸ 񽺸 ϴ receiver Ѵ. ̿ receiver home telecommunication hub , ͳ پ 񽺸 ִ. Multi-network receiver enhanced broadcast receiver interactive broadcast receiver ã ִ ɷ Ѵ.

    1. Television-Specific Applications

JavaTV API television programs 񽺷 Ѵ. ̰ ȯ濡 Ÿ ִ پ content ϴ ϴ ߻ȭ̴. , 񽺴 Video audio ȭ Ϲ TV program ϰų, audio video׸ ۰ ȭ Java Application ϴ enhanced television broadcast ִ. JavaTV API 񽺼(selectiong service), service information ϴ ͺ̽ , television-specific ̵ ÷̾ , ׸ TV ñ׳ Բ ۵Ǵ Ϳ ٿ Ѵ.

Ʈ ڴ electronic program guides(EPGs), program specific application. Stand-alone Application, television-specific application ̳ 񽺵 ۼ ִ. ̿ application Ư¡ Ʒ Ǿ ִ.

1.2.1 Electronic Program Guides

Electronic Program Guides(EPGs) ó ڷ ű⿡ ã ִ ͺ Application̴. EPGs Ǵ 濵 ڷ α׷ ̸⸦ ûڿ ϴ ̴. Ϲ, EPG û ÿ ° ä ٲپ ֱ⵵ Ѵ. ̿ application interactive performance start-up ð 迡 ߿ϰ ۿϰ ȴ.

1.2.2 Program-Specific Applications

program-specific application Ư 񽺿 Բ audio-video α׷ ߵDZ ȴ. , ûڰ ִ Ӽ Բ ߵ application̳, ̺Ʈ interaction ϴ application ִ. ̿ application  ߿ 䱸 ´. , ûڰ ä application ų ־ Ѵ.

1.2.3 Stand-alone Applications

ø̼ Ϲ ڷ α׷ ϵ Ÿ Ѵ. , ° Ʈ ޵ ͸ ֽǥ(stock ticker) ø̼ ֽİ ũ ǥѴ. ڰ ٸ äη ٲپ ø̼ ũ ־ ־ Ѵ.

1.2.4 Advertisements

Advertisement ø̼ audio/video ø̴̼. ̷ ø̼ Ϲ ð ȿ ǰ, ª ð Ѵ. ø̼ ٿε ð ۵DZ ̸ ̷ Ѵ. ø̼ Ϲ ð , ǰ .

1.3 Features of the Java TV API

JavaTV API interactive television 񽺿 ű⿡ ϴ Ÿ ٸ Ʈ ϴ ڵ ǥ ϴ interface̴. پ ø̼ JavaTV API ϴ ֿ Ʒ Ǿ ִ.

ڹ TV API Ӹ ƴ϶ ȭ ڷ α׷ Ʈ 񽺷 ǥѴ. Service information API 񽺸 ϴµ (SI) Ϳ Ͽ Ѵ.

SI ̽ ð 񽺰 ø̼ ֵ Ѵ. SI ̽ SI manager ؼ ̷ . ø̼ ̿ ִ 񽺿 , SI ڴ ִ 񽺸 ߰ϱ Ͽ ͸ ֵ Ѵ. ǵ SI ̽ Ž, EPGs, ׸ MPEG-2 Ѵ. Ͽ , 3 (" 񽺿 ") ϶.

Service selection API ǥ 񽺸 ϴµ Ǿ . Selecting Ŀ Ʈ Ǿ, ø̼ Ϻκ̶ ø̼ ۵ Ѵ. ϸ 4 Service Selection ϶.

JavaTV API ű broadcast pipeline ǥ JMF Ѵ. JMF (Data source) Ʈ (handle) Ѵ. Java TV API ϰ ´. Tunner demultiplexer-conditional access(C/A) κнý (source of data), ݸ, decoder-framebuffer-audio content handler ̴. ϸ 5 JMF and the Broadcast Pipeline ϶.

񽺴 Ƴα׿ Ʈ multiplex 𵨸 Ǿ ִ. ̷ Ʈ κ ø̼ Ұϴ(, audio/video stream). ׷, multiplex ø̼ǿ Ʈ ִ. Broadcast data API broadcast file system, Ʈ , ׸ encapsulated IP data Ѵ. ϸ 6 Braodcast Data APIs ϶.

ø̼ ʱȭ ǰ, پ ȭ ϰ, ᱹ ıǴ Ϸ ܰ ø̼ ֱ(life cycle) ˷ . Java TV API ۼű⿡ ۵Ǵ ø̼ ֱ⸦ Ѵ.

̿ ø̼ Xlet ø̶̼ Ҹ. Xlet ű⿡ ؼ ġ , ٿε ְ, TVű Ʈ ȯ Ϻκ ø̼ Manager ȴ. ø̼ manager Xlet ֱ ºȭ Ѵ. ű Xlet ø̼ context ޵Ǿ ʱȭǴ ȿ Xlet ȯ濡 ֵ ϴ ű ø̼ manager ´. ϸ 7 Application Lifecycle ϶.

Environment

Ʒ JavaTV ø̼ ϴ ϵ, Ʈ ȯ濡 Ǵ ¸ 𵨸Ͽ ǥϰ ִ. ڷ ű 鿡 ̵ ǵ ʴ´. , Java TV API ׸ Java ø̼ ȯ濡 ϱ ű κ ܼϰ ϰ ִ.

2.1 Hardware Environment

κ ű⸦ ҵ Ѵ. ̰ Java TV API Ϻκ ǿ context ϰ ϱ ǵǾ ִ. κ API ϵ Ư 䱸׿ ϰ ʴ.

TV ű video, audio, ׸ data broadcast stream Ͽ , broadcast media data pipeline óѴ. ű protocol̶ Ҹ Ư media data , ݿ ƯǾ ִ پ decoder ̿ decodingѴ.

TV űⰡ õ ǻ ġ Ǵ űⰡ broadcast media pipeline ü 𵨸 ϰ ִ ̴. Broadcast media pipeline Media 帧 Ʃ, demultiplexer, conditional access module, media decoder , ׸ rendering subsystem, Ϻνý Ǿ . Java TV API Ϻ ý ǥ 䱸 ʴ´. , ű C/A subsystem̳ Ʃʸ ʾƵ ȴ. JavaTV API ø̼ α׷Ӱ ϵ ȯ ʾƵ Ǵ ߻ȭ Ѵ. , Java TV API űⰡ broadcast pipeline ΰ Ѵ.

Ʒ ׸ pipeline RF signal ޹޾ ű⿡ ϴ ܰ躰 ְ ִ.(׸ 2) ( ׸ Ư pipeline ְ ִ. ٸ pipeline ȯ ִ.)

  1. RF ȣ tune ȴ.
  2. tuned RF ȣ digital signal demodulatǰ MPEG-2 transport stream Ѵ.
  3. transport stream demultiplexer ޵ǰ, multi stream иȴ.(: audio, video, data)
  4. video, audio stream Ưǿ ϴ ͸ صϴ C/A subsystem ޵ȴ.
  5. ص audio, video stream audio, video ġ ȣ ȯ decoder ȴ.

2.2 Software Environment

ű s/w ȯ ڹ ø̼ ȯ, Java TV API, supporting ø̼ǵ ̷ . , s/w ȯ ǽð ü(RTOS) Ѵ.

׸ 3 , s/wȯ ְ Application layer̸, ø̼ Ʒ Java Technololy Layerκ Java TV API Java package ִ. ڹ ø̼ ӽ ȿ ȴ. Java TV API ű h/w  Ҽ ִ Ʒ ܰ librarie鿡 ɵ ߻ȭ ϰ ִ.

RTOS Java technology layer ʿ system level Ѵ. ߰, RTOS , ׿ õ device-specific libraries ġ ̹ ű⸦ Ѵ.

2.3 Application Environment

ø̼ broadcast receiver󿡼 ۵ǵ Ǿ ְ, ̰ JVM ̹ ִ Ӹ ƴ϶, ø̼ ȯ API ̴ٰ. JavaTV API ø̼ ȯ VM Ǵ broadcast receiver ֿ ϰ ִ.

Java ø̼ ȯ API "package" Ҹ ׷ Ǿ ִ. PersonalJava ø̼ ȯ television recevieró ѵ ޸𸮿 ġ Ǿ. PersonalJava ø̼ ȯ package ϰ ִ.

Java.ioŰ java.io.InputStream, java.io.OutputStream, ׸ subclass ̿Ͽ data input/output Ѵ.

java.net Ű java.net.URL, java.net.InetAddress, java.net.Socket Ŭ ̿Ͽ Ʈ ϵ Ѵ.

java.awtŰ java.awt.Canvas, java.awt.Font, java.awt.Scrollbar Ŭ ̿Ͽ ׷ȿ̳ 񽺸 ø̼ǿ Ѵ.

java.lnag.Thread, java.util.EventObject Ŭ ý۷ ø̼ǿ Ѵ. ø̼ ȯ java.util.Hashtable, java.util.Calendar utility Ŭ ϰ ִ.

2.3.1 storage and Input/Output

java.io Ű stream-based I/O, file-based I/O, ׸ پ ۸ ɼ ߻ȭ Ѵ. Flash ROM system, local hard drivers, ׸ server-based remote storage system java.io Ű ̿Ͽ ִ.  ȯ濡 ű  system error stream Ѵ. ̿ stream java.io Ѵ.

߰, broadcast data stream file system java.io ʿ Ѵ. broadcast data API section ϶.

2.3.2 Return Channel and Non-broadcast Network Acces

java.net Ű Ʈ ٰ HTTP connection, ׸ URL Ľ ȯ Ѵ. java.io Ű Բ Ű IP return channel ٰ Ǵ MPEC stream encapsulate IP data 䱸 Ѵ.

2.3.3 security

ø̼ ȯ Ʈ operation ǥ organization ڽŸ 𵨰 å ֵ Ѵ. java TV API Ư å̳ ʴ´. , JDK1.2 ȱ Ͽ ø̼ ȯ濡 Ǵ å ǥѴ.

̿ Ʈ ۷ͳ standard organization ̷ ȭ ʿ ϴ ׵鸸 ϴµ ִ ̴. ̰ braodcaster Ŀ ÷ Ű ϰ Ѵ. 忡 ִ κ interactive television ߿ API ϴ ϰ ִ.

C/A subsystem downstream video Ǵ datat stream descramble̳ ص Ǵ Ű Ʈ Ѵ. Java TV API C/A key ص ˰ ȹ Ŀ ʴ´. ʹ پ ý۰, API ϰ, C/A architecture ϴ ǥ ̽ Ѵ.

High-level C/A subsystem API ϴ ͺٴ, Java TV API service selection API SI databases C/A subsystem interaction ǥ Ѵ. ڼ ؼ, 3 "Service and Service Information" 4 "Service Selection" .

ͳ ڸϰ ȣ Secure Communication ſ ߿ϴ. bi-directional(??) TCP/IP ̷ SSL(Secure sockets layer) TLS(Transport Level Security) ̿Ѵ. Java Secure Socket Extention(JSSE) SSL TLS ڹ ǥ Ȯ̴. JSSE ø̼ java.io java.net Ǵ 񽺸 secure communication ϰ ϱ javax.net java.net.ssl Ű Ѵ.

Java VM ڵ secure execution ϵ Ǿ ִ. Bytecode VM instruction ȿ Ѵ. Ŭ ε ī  ڵ尡 ӽſ εǴ ȣϰ, ڵ ҽ ȿ Ѵ. ޸ ڹ  μ ͳ ÿ÷ο츦 ϴ ݰ ڵ masquerading ϴ ߴ.

2.3.4 Abstract Window Toolkit

Java Abstract Window(AWT) UI Ʈ ⺻ Ѵ. AWT native widget Ŀٶ Ѵ. Vendor, consortia, standard ű⿡ ִ. ø̼ Ư look and feelϴ Ư AWT ִ.

Service and Service Information

Service ű⿡ ǥ content ̴. Java TV API ϳ ޵ȴ. Service ǥ õ ִ. ڷ ûڴ ̿ Ȥ"television channel"̶ ĪѴ. ó advanced television receiver Service ܼ single audio/video stream ƴ϶, data multiple audio/video ̴.

Service SI database Ǿ service information(SI) Ư¡ ´. SI MPEG-2 transport stream layout audio/video/data stream content Ѵ.

Java TV API SI elements ϱ Locator object Ѵ. ־ locator Ʈ object ǥ ְ, Ʈ locator mutiple mapping ´. Java TV API ֺȲ ϰ, Ʈ locator ϴµ Ǵ method Ѵ.

SI پ ó ǰ ǥȭ Ǿ. , DVB-SI پ , ̺, ýۿ ȴ. ATSC A56ǥ ̺ ο Ǹ, ο ATSC PSIP(A65) Ŀ ̺ DTV Ǿ . ׹ۿ ʹ پ ݵ ִ. JavaTV API SI protocol ߻ȭ Ѵ. , Java TV ø̼ ű⿡ ޵Ǵ SI protocol ˾ ʿ䰡 . , ø̼ DVB-based, SCTE-based, ATSC-based sytem پ ȯ濡 ϱ Ư ڵ带 ʿġ ʴ´.

3.1 Service and Service Information Definitions

3.2 SI Packages

SI database ü application 䱸ϴ پ SI view Ѵ. view Java TV SI APIȿ ִ Ű ǥȴ. SI API Ű Service, Navigation, Guide, ׸ Transport̴.

Service Ű SI database ϴ ⺻ Ʈ ϰ, Service, SIElement interface ٸ SI package Ŭ Ѵ.

Navigation Ű ϴ 񽺵 Žϴµ Ǵ Ŭ Ѵ.(DVB Service, ATSC Vitual Channel̰ Ҹ)

Guide Ű α׷ , α׷ ̺Ʈ, α׷ ϴ eletronic program guide(EPGs) Ǵ Ŭ Ѵ.

Transport Ű MPEG-2 ī ǥѴ.

׸ 4 SI API Ű ϰ ִ. ׸ ȭǥ Ű Ÿ.

κ TV ű SI data ޸𸮿 ij . ű SI data Ϻκ ijѴ. ׷,޷θ ͸ ʿ䰡 , ű transport stream Ľ ̴.

ֳϸ transport stream ð ɸ , SI API ij 񵿱 Ѵ.

SI API ߰ ϴ SIElement Ȯ ؼ ̷ APIȮ Ŀ Ѵ.

3.2.1 Service Package

service Ű ٸ SI package Ư¡ Ѵ.

κ SI ҵ Ŭ ̱ ٴ interface̱ , ø̼ Ư ̽ implementsϴ object νϽȭϴ Ѵ.

ø̼ broadcast SI Ұ ȭ ǰ پ ü ϵ ִ. SIChangeListener Object SIChangeEvent object ǥ ڹ ̺Ʈ Ѵ. ȭ ϴ ü .

ServiceŰ Ŀ Ѵ. SIRequestor, SiRequest interface ȴ. ޼ ȣڴ ѹ û Ͱ 밡ϴٴ ֱٿ callback ϱ SIRequestor Ѵ.(??)

SIRequestor boject û Ǵ ǥø Ѵ. SIRequest ü ȣڿ ̻ ʿ䰡 û Ҹ ϱ ȴ.

3.2.2 navigation Package

navigation Ű Ѵ :

ֿ Ž ü ǥȴ. SI manager SI database ⺻ Ʈ ȴ. ̰ serviceFilter ü ǥǴ ñؿ ServiceList Ҹ Service ü . Collection äγѹ, ä̸ Ҽ ְ, Service object ŽѴ. ⺻ Ŭ ServiceFilter ű⿡ install service ǥϴ ⺻ collection ִ.

Service object ڽ Ž ʿ ּ (locator, ä̸ ȣ ) ִ. 񽺿 õ ߰ ServiceDetail ü ԵǾ ִ. ServiceDetail ü (C/A), Ŀ,񽺰 ŵ ð õ Ѵ.

Channel component Ʈ Service ü Ǿִ. ̰ Ư 밡 ϴٸ Ư ProgramEvent͵ ɼ ִ. ProgramEvent ü α׷ ϴ Service object component Ѵ.

3.2.3 Guid Package

guid Ű EPGS ϴ Ѵ. Ű EPGs õ ΰ Ʈ Ѵ : ä Ǵ program event õ äο α׷ . ProgramSchedule ü Ϲ Playǰ ִ α׷, ٷ program, ׸ ̷ Ȯ ð ٸ 󸶰 ̿ α׷ ˻ϴµ ִ. ProgramEvnet ü ̰ ̸, ۽ð, ׸ ð, , , ׸ Ÿ õ 䱸 ִ.

(18̻ ûɰ ) õ MPAA rating, FCC TV rating, DVB age-based rating, ׸ broadcast-specific rating (, ׷̳ ) Ǿ . Ѵ; ProgramEvnet ü Ǵ ̵ ϳ labelǾ .

3.2.4 Transport Package

transport Ű SI describe content ϴ MPEG-2 transport ü Ѵ. SI manager TransportStreamCollection ȮǾ MPEG case MPEG-2 multiplex ǥϱ Transport ü Ѵ. Ϲ Transport interface Internet Protocol(IP) ٸ Ŀ ϱ ȮǾ ִ.

Service Selection

ѹ service ߰ߵǰ , service Selection API application ܼϰ, ǥ ֵ ش. Service selection API Ʃ , service information, media playback, broadcast file transport, ׸ application manager ȣϴ ϳ ޼ յȴ. Ư, ̰ Ʈ service Ѵ.

, ø̼ ǥϴµ ־, audio component, video component Ǵ subtitle component ؼ ʿ䰡 . Դٰ, ø̼ 񽺰 ø̼ǰ , Ǵ ̷ ø̼  Ǵ ʿ䰡 .

4.1 sercive Selection Definitions

4.2 Service Selection API Overview

service selection API ǥ 񽺵 ϴ Ŀ Բ ø̼ ϱ ̴. 񽺰 ǥǰ ִ ȯ ǥϴ Ŭ ServiceContext Ŭ̴. ű ̵ ϴ Ŭ ü д. ServiceContext ̰Ͱ ڵ ϵ, , Ʃ ǥ̴. ServiceContext Ư 񽺿 Ʈ ǥ  ø̼ ϰ ش. SreviceContext select()޼ service context 񽺸 ǥϷ õ ȴ. selection ̰ Ϸ event-listner Ŀ ȴ. д select() ȣ ñ⿡ ȴٸ exception ǰ, Ŀ ȴٸ event ȴ. ѹ service context 񽺸 ǥϸ, Ʈ locator پ 񽺿 õǼ Եȴ.

ServiceContext object 񽺸 ǥ , getServiceContentHandler()޼ پ Ʈ ǥϰ ִ ̳ players reference Ѵ. , , clock ϴ subtitle Ʈ ǽð ̵ single JMF player ϵȴ.

4.3 Service Context State Model

ServiceContext װ ߿ ϳ ִ ? Presenting, NotPresenting, Presentation Pending, Destryed. ʱ´ Presenting ƴϴ. ¿(Destryed ¸ ϰ) select()޼ҵ ȣ ִ.  Exception ߻ ʾҴٴ Ͽ ServiceContext Presentation Pending· . trainsaction󿡼  ̺Ʈ ʴ´.

select()޼ ȣ ٸ, NormalContentEvent Ȥ AltenativeContentEvent ǰ ServiceContext Presenting· ̵Ѵ. service selection ϸ, SelectionFailedEvent ȴ. select ȣ ° Not Presenting̸, ServiceContext · ư ǰ, PresentationTerminatedEvent ȴ. selectȣ ° Presenting̸, ServiceContext NormalContentEvent Ǵ AlternativeCContentEvent · ư õϰ ȴ. Ұϴٸ, ServiceContext PresentationTerminatedEvent Ѵ.

Not Presenting ´ PresentationTerminatedEvent serviceǥ  ȴ. service presentation ߴ application stop()޼ҵ ȣ⿡ ʱȭɼ ְų ȯ濡 ̻ ϰ Ǵ ȭ ֱ ̴.

Destryed´ destry()޼ ȣ⿡  ȴ. ѹ ̻¿ Ǹ ServiceContext ejdltkd  ε . destroyed ServiceContext garbage collection ĺ ȴ.

TABLE 1 descriptions of the Service Context States

̸

Not Presengting

ServiceContext ʱȭ . ¿  񽺵  ǥ ʴ´. ServiceContext stop޼尡 ȣǰų ǥǴ 񽺰 ̻ ǥ ʴ´ٸ · ´.

Presentation Pending

ServiceContext select޼尡 ȣ Ŀ ƹ Exception ߻ · ´. 񽺰 ¿ ǥǰ ־ٸ, 񽺴 ¿ ؼ ǥȴ. selection operation , ServiceContext ¸ · õѴ.

Presenting

, service selection ̷ ٸ, ServiceContext · ´. ¿ normal content Ǵ alternative content  ǥȴ.

Destryed

Destroy޼尡 ȣ , ServiceContext · ´. ¿  񽺵  ǥ ʴ´. ϴ ̻¿ , ServiceContext ̻ .

JMF and the Braodcast Pipeline

Java TV API breadcast media pipeline ϱ Java Media Framework(JMF)1.0 API ̿Ѵ. JMF API APIƮ ۸ī, , media content type time-based mdia display framework Ƿ Java TV API Ѵ.

JMF time-based media data MediaHandler Ȯϴ javax.media.Player Ѵ. Player ü time-based media streamd rendering ڿȹ ʿ ӽݏ encapsulateѴ. Playerü پ rendering facilities(, , ȭ)  Ѵ. ħ, / Ʈ Player 쿡 stream video κ ϴ GUI component ü Playerκ Ե ִ. ̰ ϰ video ġ ǥ ̸ Ѵ.

ڼ JMF JMF1.0 specification .

5.1 JMF Controls

JMF Control ð Plyaerκ ԵǴ ü̴. javax.media.Control interface implementsϴ Object Player ϴ media Ư¡  ϴ  Interface ϳ̻ implementsϰ ̴. , Player Player audio ϰ ִ javax.media.GainControl interface ϴ Object Ѵ.

JMF1.0 specification ϰ ִ control ߰, Java TV API javax.tv.media Ű ϰ ִ control Ѵ.

Interface

Function

Javax.tv.media.MediaSelectControl

Media

Javax.tv.media.AWTVideoSizeControl

Video size and position

JavaTV API Ϻκ ǵǰ ִ Control Ʈ Java TV implementation ϰ ɰ, Player control ׻ ؾ ϴ ƴϴ. Player instance Player getControl(String forName)޼带 ̿ؼ Ư control Ѵٸ application üũҼ ִ. output Null̶, forName control ʴ ̴. control Player instance ϱ ؼ getControls()޼带 Ѵ. implementation Ѵٸ, ޼ Ư control ڸ Ͽ Control object 迭 Ͽ ش.

߰ DAVIC 1.4(Digital Audio-Video Council)specification Java TV API ϸ JMF Control object Ѵ. ̵ control Table3 Ǿִ.

DAVIC Control

Function

Org.davic.media.MediaTimeEventContrl

Time based events

Org.davic.media.LanguageControl

Base class for language selection

Org.davic.media.SubtitingLanguageControl

Subtitle language selection

Org.davic.media.MediaTimePositionControl

Position

Org.davic.media.FreezeControl

Freeze frame

Org.davic.AudioLanguageControl

Audio language selection

5.2 JMF Synchronization

JMF media ǥ ȭ master ϴ clock media ȭ specification Ѵ. ȭ ⺻ JMF document Ǿ ִ. JMF Player media-time ϱ ޼带 ϴ Colck classκ ޴´. Clock time-base Ҹ object ϴ ޼带 Ѵ. time-base media-time time-base 踦 ϱ Ÿ Ķ ƴ϶ media-time time-base Ư ȭ Ʈ ޼带 Clock ȭ ͸ ǥѴ.

Java TV API DAVIC ǵ Ư media-time ̹Ʈ ϴ ο Ŀ Ѵ. ׿ ̺Ʈ ִ Player MediaTimeEnetListener Ǵ MediaTimeEvnetControl ̽ Ѵ. MediaTimeEvent media-time ߻ MediaTimeEventListener ޵ȴ.

5.3 Player Architecture and the Broadcast Pipeline

JMF javax.media.PlayerŬ ü Բ media playback Ѵ. ̰ Ǵ еǴ component ִ: protocol hanler media handler. Player media handler ̴. protocol handler õ(source of data)̴ : media handler data Һ̴. protocol ߻ȭǾ ְ, Ǵ ī Ϻ ̴. , IP ῡ ޵Ǵ HTTP Ͱ Ʃʷκ ޵Ǵ MPEG-2 transport ؼ δٸ protocol 䱸ȴ. JMF javax.media.protocol.DataSource protocol handler ̵Ǵ ߻ȭ Ŭ ϰ ִ. JMF content handler javax.media.MediaHandler interface ϰ ִ. javax.media.Player MediaHandler extendsϰ ִ.

κ JMF ο media stream render ɶ decoding pipeline ȴٰ ϰ ִ. ũž ȯ濡 Ÿ ǥ̴. Ϲ network connection media strema 䱸Ѵ. connection е pipeline 䱸 , source ȥ 䱸Ѵ.

ȯ濡 ׷ ʴ. broadcast network ̽ multiplex multiplex 𵨷 Ҽ ִ. ̿ tuner(ù° multiplex) demux(ι° multiplex) Ѵ. , broadcast network ̽ Ʃ(primary multiplex selection) stream selection(ι° multiplex section) ȴ(׸ 6 ÿ). broadcast ؼ pipeline ׻ : ° multiplex audio/video decoder ȴ. , ä ٲٷ network interface Ʃװ stream selection parameter ɸ ʿ, ο pipeline ڿ(tuner, demux, codec, screen) ȹ ʿġ ʴ´.

JMF ̽ pipeline 𵨸Ѵ. Playerü pipelineü ǥϰ, Ʈũ ǥϴ DataSource ǥѴ. broadcast selection ī ϱ ؼ simple ߰ ʿϴ. multiplex ϳ ġ( Ʃ׿û ؼ ο player ȴٸ  Ͼ) pipeline 䱸 ϱ ٴ, demux ۿ ִ selection interface ȴ. ī javax.tv.media.MediaSelectControl ã ִ. ̰ content 񵿱 selection de-selection JMF API̴.

Broadcast Data APIs

Broadcast data Java TV API television broadcast signal ۵ Ѵ. ̵ API ۵ Ѵ.

Java TV API java.ioŰ ǵ ī ̿Ͽ broadcast file 丮 Ѵ.

Java TV API java.netŰ datagram ī ̿Ͽ broadcast stream ۵ unicast/multicast IP datagram Ѵ.

JavaTV API JMF Űjavax.media.protocol ̿Ͽ broadcastκ Ϲ streaming data ϴ.

6.1 Broadcast Data API Definitions

6.2 Braodcast File Systems

Java TV API java.ioŰ ǵ ī ̿Ͽ broadcast file 丮 Ѵ. ̷ data Ϲ "carousel"ȿ ۵Ǿ µ װ ý content ֱ ۵Ǿ ű⿡ ϱ ؼ ̴. Java TV API broadcast carousel Ϲ disk file systemó 𵨸 Ǿִ. κ Ư carousel interaction protocol applicatioṉ ٴ Java TV API implementation óȴ.

Java TV API  broadcast file system protocol Ҽ ְ high level̴. ׷, ̰ ϴ DSM-CC object carousel protocol DSM-CC data carousel protocol, ΰ protocol ȴ. ̰ Ʒ ڼ Ǿ ִ.

6.2.1 DSM-CC Object Carousels

DSM-CC object carousel protocol Ϲ broadcast file system ̴. ̰ carousel data ϴµ object Ѵ.

java.io.File class ̵ ü ǥѴ. Java TV API class javax.tv.carousel.CarouselFile object carousel ϰ, ߰ϱ java.io.File ӹ޴´ :

application CarouselFile objectκ б java.ioŰ(, FileInputStream, FileReader, RandomAccesFile) Ŭ Ϲ Է Ѵ.

6.2.1.1 Object Carousel Example Usage

1.ֻ CarouselFile Ѵ.

CarouselFile serviceGateway = new CarouselFile(locator);

2. ֻ object Ѵ.

String files[] = serviceGateway.list();

3. object

CarouselFile myfile = new CarouselFile(serviceGatewqy, files[0]);

4. file input object

FileInputStream fis = new FileInputStream(myFile);

5. Ϸκ б

byte data = fis.read();

6. ݱ

fis.close();

ServiceGateway CarouselFile instantiated , local file system subtreeμ carousel namespace μ ű local file system carousel "mounts"Ѵ. local file system mount point ġ ǰų ڷ ǥ ü . carousel mount Ŀ ø̼ CarouselFile.getCanonicalPath() ޼带 ؼ local file system carousel ġ  ִ.

carousel local file system mount Ŀ, ø̼ CarouselFile object java.io.File object ̿ؼ DSM::Directory DSM::File type object ִ. CarouselFileŬ java.io.File ã Ư 񵿱 εƯ¡ ´.

FileInpustStream, FileReader, RandomAccessFile file input Ŭ û data carouselκ load , IOException instance throwѴ. carousel ̻ ٸ, ű ø̼ ؼ ε ͷκ а ̴.

6.2.1.2 Object Carousel Management

ø̼ object carousel ٸ file system Ѵٰ ص, ű ݵ carousel ȣۿؾ Ѵ. interaction ű κ ٸ ű⿡Է ϰ ø̼ǿ ϵ ϰ־ Ѵ. ۵ Java TV API DSM-CC Object carousel Ǵ ׵̴.

CarouselFile DSM::ServiceGateway object instantiation ű :

1. Ǵ carousel service domain ÷Ѵ.

2. local file system carousel file hierarchy mountϰ,

3. 񵿱 DSM::ServiceGateway ü contents εѴ.

DSM::Directory object CarouselFile instaintiatϴµ־, ű 񵿱 DSM::Directory object contents εѴ. CarouselFile.instDirectoryCotents() 丮 ޼ ȣ CarouselFile Ǵ DSM::ServiceGateway Ǵ DSM::Directory contents ε ߴܵȴ.

Դٰ, DSM::File object ϰ ִ CarouselFile instantiating 񵿱 DSM::File object contents εѴ. DSM::File object ǥϰ ִ CarouselFile object java.io.FileInpustStream, java.io.FileReader, Ǵ java.io.RandomAccessFile object read operation DSM::File object ġǴ contents ε ߴܵȴ.

single DSM::File object ġǴ java.io.FileInputStream, java.io.FileReader ׸ java.io.RandomAccessFile instance close operation DSM::File object contents unloadѴ.

single DSM::Directory object ϴ CarouselFile νϽ DSM::Directory object contents unload Ѵ. carousel ִ ü ϰ ִ CarouselFile νϽ finalizeǰ carousel ִ DSM::File object ϰ ִ java.io.FileInpustStream, java.io.FileReader, ׸ java.io.RandmAccessFile closeǰ , ű :

1. DSM::ServiceGateway object Unloadϰ

2. local file systemκ carousel unmountϰ

  1. carousel service domain (detach)Ѵ.

6.2.2 DSM-CC Data Carousels

DSM-CC data carousel protocol single-directory file system ű⿡ Ѵ. data carousel protocl Ư carousel ִ data module, ׸ carousel module contents ޽ ˸ DownLoadInfoIndication message Ѵ. ڷ űⰡ carousel module string-base naming ϴ broadcast ǥ ٸ CarouselFile instance object carousel DSM::File object data carousel module ϰ дµ ִ. Ư,

6.2.3 Reducing the Effects of Carousel Latency

DSM-CC object carousel Ǵ data carousel disk-based file system ó ð ִ. ̷ ð å , multiple carousel-based file ϴ application ʿ ε忡 ־ delay ϰ ɰ̴. ̷ ϱ ؼ, Java TV API ϴ ø̼ ð ũ ִ.

6.3 IP Datagrams

Java TV API java.net Ű Ϲ datagram Ŀ ̿Ͽ bradcast stream ޵Ǵ IP datagrams Ѵ. ø̼ java.net.DatagramSocketŬ ̿Ͽ unicast IP datagram Ѵ. Application java.net.MulticastSocketŬ ̿Ͽ multicast IP datagram Ѵ.

Multicast IP datagram ϰ ϱ ؼ Java Tv API encapsuate IP datagrames ϴ service component local unique IP ּҸ Ҵؾ Ѵ. ̿ address 缳 Ʈ DZ IPּ(ڼ RFC 1918 ) Ʈκ ȴ. ڷ ø̼ ־ service component Ҵ local IP address javax.tv.net.InterfaceMap ̿Ͽ Ѵ. ø̼ IP address java.net.MulticastSocket̳ java.net.DatagreamSocket νϽ multicast datagramǷκ network interface Īϴµ Ѵ.

6.4 Streaming Data

Java TV API JMFŰjavax.media.protocol ̿Ͽ television broadcast Ϲ streaming data Ѵ. 񵿱 streaming data javax.tv.media.protocol.PushSourceStream2̽ ̿Ͽ Ե ִ.

Java Tv API ø̼ Ϲ javax.tv.locator.Locator Object Ͽ data service component Ѵ. Locator.toExternalForm()޼带 ؼ, ø̼ Locator object javax.media.MediaLocator object Ǿ string ȯŲ. MediaLocator object javax.media.Managerκ javax.media.DataSource object ϴµ ȴ. ׸ , DataSource object ϳ ̻ PushSourceStream2 object ϴµ ȴ.

PushSourceStream2 JMF version1.0 javax.media.protocol.PushSourceStream ο read Ŀ Բ ȮŲ interface̴. PushSourceStream2.readStream()޼ data payload ٰ ս ˸ exception throws Ѵ. Java TV API PushSourceSteam2 ؼ Ե ۸̳, 밡ɼ ʴ´.

Application Lifecycle

Java TV API Xlet application lifecycle̶ Ҹ application model Ѵ. ̿ lifecycle model ϴ Java application Xlet̶ Ҹ . Xlet application lifecycle applicationȯ ӽű ȣȯȴ.

Xlet application lifecycle model Xlet ̰ ȯ ȭ(protocol) Ѵ:

    1. Xlet Application Lifecycle Definitions

ǵȰ͵ Xlet application lifecycle model Ǿ:

    1. Application Manager Requriements

Xlet application lifecycle application manager Xlet Ʋ ִ  addressѴ. Xlet ִ Applicatin manager Xlet ű⿡ ִ ׷̳ ڿ ٸ ڿ ʴ´. Application manager ϰ Java , ƴ ִ.

Application manager ڼ Java TV API , Xlet application lifecycle model Ģ ؼϴ application manager 䱸Ѵ:

Application manager Xlet ڷ ű entity̴. , application manager Xlet destroy ־ Ѵ.

Application manager Xlet ׵ ¸ ȣؾ å ִ. , Xlet ڽ ¸ ٲ ־, ׵ ݵ ̿ ȭ application manager ȣؾ Ѵ.

Application manager ñ Xlet ȭ ϱ ؼ ̴.

Xlet applicatio lifecycle API Ư¡ Xlet ڽ ¸ ٲ ִٴ ̴. , application manager ݵ ȭ ޾Ƽ Xlet ¸ ־ Ѵ.

    1. Xlet States
    2. Xlet lifecycle .

      Table 4 Xlet States

      ̸

      Loaded

      Xlet εǰ ʱȭ . ´ new ̿ؼ ȴ. Xlet ƱԸƮ constructor ȣϰ Exception ϵ . Xlet Ϲ ܰ迡 Ǵ ʱȭ ʴ´. Exception ߻ϸ, Xlet Destroyed· , .

      Note; ´ Xlet instance ѹ ִ.

      Paused

      Xlet ʱȭǰ . ´  ڿ ϰų .

      ´ ȭ ȴ:

      Loaded·κ Xlet.init()޼尡 Ǵ

      Active ·κ Xlet.pauseXlet() ޼尡 Ǵ

      Active ·κ XletContext.notifyPaused()޼尡 ϱ

      Active

      Xlet Ϲ ϰ , 񽺸 ϴ . ´ Paused ¿ Xlet.startXlet()޼尡 ϵ ȴ.

      Destryed

      Xlet ڿ ݳϰ ȴ. ´ Ȳ ´ :

      DestroyXlet() ޼尡 . DestroyXlet()޼ Ȧϰ ִ ڿ ݳϰ ʿ clean up ϰ garbage collect Ұ̴. Ǵ,

      XletContext.notifyDestroyed()޼尡 ϵǾ .

      Xlet XletContext.notifyDestoryed ȣ ݵ Xlet.destryXlet()޼ ؾ Ѵ.

      Note: ´ Xlet instance ѹ ִ

      1. Xlet state Machine

Xlet ӽ Xlet ڷ ûڰ ϴ ۿ Ǿ. Ư:

׸ 7 Xlet application ӽ ׸ ְ ִ.

      1. Xlet Lifecycle Model

Xlet 񽺸 ִ ִ. , application manager Xlet 񽺸 ϶ . ̰ Xlet ׷ ϶ ų ִ. Ϲ Xlet :

Table5 Xlet Excution

Application Manager

Xlet

Application manager Xlet ο instance Ѵ.

Xlet default constuctor(ƱԸƮ ) ȣǰ Loaded ¿ ִ.

Application manager Xlet Ű ʿ context object ϰ Xlet ʱȭ Ų.

Xlet context object ̿Ͽ ڽ ʱȭ Ѵ. Paused¿ ִ.

Application manager 񽺸 ϱ ð ϰ, Active ·  ȣѴ.

Xlet 񽺸 ϴµ ʿ ڿ ȹѴ.

Application Manager ̻ Xlet 񽺸 ϴ ʿġ ʴ´. Xlet 񽺸 ߶ ȣ .

Xlet ߰ ϰ ִ ڿ ݳϴ ϰ ɰ̴.

Application manager Xlet ̻ ʿġ ʴٰ ϰų 켱 . ̰ Xlet destroyǴ ȣ ȴ.

׷ ϵ Ǿٸ Xlet ³ ȣ ϰų clean up Ѵ.

    1. Xlet Package

Xlet Ű ڿ ڷ ű ȯ濡 application lifecycle signaling API Բ ȴ. Xlet API Xlet ȯ Ÿ Xlet XletContext Ǿ.(JavaDoc ڼ ų ų..)

Xlet API ºȭ ȣ callback Ѵ. Xlet ´ application manager Xlet ޼带 ȣϰų Xlet XletContext object ȭ application manager ٲ ִ. Ȯϰ ȭ Ͼ ǹ̴ ߿ϴ:

interface ȣ ȣ ̷ ºȭ Ų.

interface ȣ ºȭ Ա Ÿ.

Xlet API Ģ :

ñ Xlet API Xlet ºȭ ϴµ ִ.

XletContext Xlet ǥϴµ object̴. XletContext ȯ濡 ؼ ȯ漳 ϱ XletContext ޵ȴ.

Xlet ְ Ǵ ִ ü(entity)ϻ̴. , Xlet ϴ ̻ Ҽ ߰ϰ ȭ ϰ ɰ̴.

Xlet ڽ ۾ , application manager ȣ .

7.4.1Xlet interface

Xlet interface application manager application lifecycle ºȭ Xlet ȣ ִ װ ޼带 Ѵ:

Xlet ʱȭѴ. ޼ Xlet ڽ ʱȭ϶ ȣ , ׷ ̰ 񽺸 ְ غϰ Ѵ. XletContext object ޼ҵ ޵ȴ. object ° ٲ application manager ȣ Ӹ ƴ϶ , ̰ ȯ propertie Xlet ϰ ϴµ ȴ. Xlet ʱȭ ϴ ִٸ, XletStateChangeException ߻ application manager ȣ . ۿ Xlet Paused · ƿ´.

Xlet ޼ҵ尡 ϰǸ Active· Ű . Xlet ¿ 񽺸 ϰ ȴ. Xlet Ϲ ڿ ȹѴ. Xlet Active ·  ϸ, application manager ºȭ и ϴ XletStateChangeException ߻ų ִ.

PauseXlet ϴ 񽺸 ߴ϶ ȣ Xlet Ѵ. Callback ϵ , xlet Pause ¿ ְ ȴ. Xlet ڿ ݳϴ ϰ ɰ̴. Xlet Paused ·  ϸ, application manager ºȭ и ϴ XletStateChangeException ߻ ִ.

޼ Xlet ̻ ʿ ýۿ ɰ̶ ȣ . Xlet DZ ڿ ݳ, preference , ʿ ó Ѵ.

        1. Xlet and Finalization

Java object gabarge collection DZ  clean upó ֵϴ finaization ȣ Ŀ ϰ ִ. Object finalizer object ų, object garbage collect غ DZ ȣ ʴ´. Java language specification programmer finalize ȣ⿡ Ѵٰ Ѵ. Xlet interface Xlet destroyXlet() ޼ҵ ȣ destroyDZ ٷ ȣ°Ϳ ϶. ޼ ǵ ϱ , α׷Ӵ destryXlet() ޼尡 ȣ ̶ ִ.

ߵ, object ׵ finalizer ȣǴ Ϳ ؼ ȵȴ. Xlet Ϲ ݵ clean upؾ ִٸ, Xlet destoryXlet()޼带 ſ ̿ؾ Ѵ. κ finalizer Ѵ.

Ϲ Java application ȯ Xlet finalizer ϴ Xlet ۾ ϰ Ǿ ִ. ̰ ϰ ϴ ϳ finalizer thread group ְ켱 settingǾ ִٴ ̴. Object Constructor ۾ security exception ߻ų ִ. Application ȯ ϴ ݵ å ϴ SecurityManager ؾ Ѵ. ø̼ ȯ  ΰ SercurityManager object ؾ Ѵ. ϳ Xlet Ϲ ̰, ϳ finalizer thread ϴ ThreadGroup å ϴ ̴.

        1. Xlet and Threads

Xlet ׵ lifecycle ޼(Xlet interface ϴ ޼) sychronized ϰ ִ. ̰ Xlet interface ޼ ʴµ, Java language interface ޼ synchronized ̴. ̷ ޼ syschronized μ, Xlet object interface ϳ lifecycle method ȣ lock ȹϰ ȴ. ̰ ϳ ٸ ϳ ޼ lifecycle ޼ ȣ ߴϴ ´. Xlet XletContext lifecycle ޼ ȣ ׵ ڽ lock ȹϴ ִ. 踦 application manager Xlet lifecycle ޼ ȣ⿡ thread ϰ ɰ̴.

      1. XletContext Interface

XletContext Xlet ʱȭ ޵Ǵ object̴. XletContext Xlet properties ϴ Ŀ Բ, application manager ºȭ ȣ Ѵ.
XletContext Xlet ϴ ȴ. XletContext interface ޼带 ϰ ִ:

޼ Xlet Destryed¿ Դٴ application manager ˸. ޼ Xlet ϰǾ destrye غ Ǿٴ application manager ˸ Ѵ.

޼ Xlet Paused ¿ Դٴ application manager ˸. ´ Xlet ̻ 񽺸 ȴ.

޼ Xlet XletContextκ ־ ̸ property ְ Ѵ.

޼ Xlet application manager Active ·  Ѵٴ ˸.

    1. Xlet Lifecycle Example

Xlet lifecycle ܼ û ڷ stock ticker , ̰ ֽĽü back channel ̿Ѵ.

  1. application manager xlet code Ѵ.
  2. application manager XletContext object ϰ ο Xlet ̰ ʱȭ Ѵ.
  3. application manager initXlet() ޼带 ȣϰ Xletcontext object μ Xlet ʱȭ Ѵ.
  4. Xlet XletContext object ̿Ͽ ڽ ʱȭ ϰ Paused · .
  5. ڴ application manager Xlet ϶ ȣ Ǵ ڷ ư .
  6. application manager startXlet()޼带 Xlet ȣѴ. Application manager Xlet 񽺸 ϰ ִ Ѵ.
  7. ȣ Xlet ֽĽü back channel ο thread Ѵ. Xlet Active ¿ ִ.
  8. xlet ֽĽü ش.
  9. Xlet  μ ̱ ̰ ̻ ŵ ֽ ü .
  10. Xlet ֽ ü ؼ ֱ Ѵ. Application Active ¿ ϶.
  11. ð , Xlet back channel . Xlet ִ ü ʹ Ǿ ̻ 񽺸 ٰ Ѵ. Xlet Active ¸  ڴٰ Ѵ. Xlet XletContext notifyPaused()޼带 ȣϿ application manager ȭ ˸.
  12. , Xlet ̻ 񽺸 ȸ ˰ Ǿ Ѵٰ Ѵ. Xlet XletContext notifyDestryed()޼ ȣϿ clean up ϰ, application manager Destryed ¿ Դٰ ˸.
  13. application manager xlet garbage collectionDZ⸦ غѴ.