CONTENTS | PREV | NEXT | INDEX JMF 2.0 API Guide


JavaTM Media Framework API Guide

November 19, 1999

JMF 2.0 FCS


Contents

Preface

About JMF
Design Goals for the JMF API
About the JMF RTP APIs
Partners in the Development of the JMF API
Contact Information
About this Document
Guide to Contents
Change History
Comments

Part 1: JavaTM Media Framework

Working with Time-Based Media

Streaming Media
Content Type
Media Streams
Common Media Formats
Media Presentation
Presentation Controls
Latency
Presentation Quality
Media Processing
Demultiplexers and Multiplexers
Codecs
Effect Filters
Renderers
Media Capture
Capture Devices
Capture Controls

Understanding JMF

High-Level Architecture
Time Model
Managers
Event Model
Data Model
Controls
User Interface Components
Extensibility
Presentation
Players
Processors
Presentation Controls
Controller Events
Processing
Processing Controls
Data Output
Capture
Media Data Storage and Transmission
Storage Controls
Extensibility
Implementing Plug-Ins
Implementing MediaHandlers and DataSources

Presenting Time-Based Media with JMF

Controlling a Player
Creating a Player
Displaying Media Interface Components
Setting the Playback Rate
Setting the Start Position
Preparing to Start
Starting and Stopping the Presentation
Releasing Player Resources
Querying a Player
Getting the Playback Rate
Getting the Media Time
Getting the Time-Base Time
Getting the Duration of the Media Stream
Responding to Media Events
Implementing the ControllerListener Interface
Using ControllerAdapter
Synchronizing Multiple Media Streams
Using a Player to Synchronize Controllers
Synchronizing Players Directly
Example: Playing an MPEG Movie in an Applet
Overview of PlayerApplet
Initializing the Applet
Controlling the Player
Responding to Media Events
Presenting Media with the MediaPlayer Bean
Presenting RTP Media Streams
Listening for RTP Format Changes

Processing Time-Based Media with JMF

Selecting Track Processing Options
Converting Media Data from One Format to Another
Specifying the Output Data Format
Specifying the Media Destination
Selecting a Renderer
Writing Media Data to a File
Connecting a Processor to another Player
Using JMF Plug-Ins as Stand-alone Processing Modules

Capturing Time-Based Media with JMF

Accessing Capture Devices
Capturing Media Data
Allowing the User to Control the Capture Process
Storing Captured Media Data
Example: Capturing and Playing Live Audio Data
Example: Writing Captured Audio Data to a File
Example: Encoding Captured Audio Data
Example: Capturing and Saving Audio and Video Data

Extending JMF

Implementing JMF Plug-Ins
Implementing a Demultiplexer Plug-In
Implementing a Codec or Effect Plug-In
Implementing a Multiplexer Plug-In
Implementing a Renderer Plug-In
Registering a Custom Plug-In
Implementing Custom Data Sources and Media Handlers
Implementing a Protocol Data Source
Integrating a Custom Data Source with JMF
Implementing a Basic Controller
Implementing a DataSink
Integrating a Custom Media Handler with JMF
Registering a Capture Device with JMF

Part 2: Real-Time Transport Protocol

Working with Real-Time Media Streams

Streaming Media
Protocols for Streaming Media
Real-Time Transport Protocol
RTP Services
RTP Architecture
RTP Applications
Receiving Media Streams From the Network
Transmitting Media Streams Across the Network
References

Understanding the JMF RTP API

RTP Architecture
Session Manager
RTP Events
RTP Data
RTP Controls
Reception
Transmission
Extensibility
Implementing Custom Packetizers and Depacketizers

Receiving and Presenting RTP Media Streams

Creating a Player for an RTP Session
Listening for Format Changes
Creating an RTP Player for Each New Receive Stream
Handling RTP Payload Changes
Controlling Buffering of Incoming RTP Streams
Presenting RTP Streams with RTPSocket

Transmitting RTP Media Streams

Configuring the Processor
Retrieving the Processor Output
Controlling the Packet Delay
Transmitting RTP Data With a Data Sink
Transmitting RTP Data with the Session Manager
Creating a Send Stream
Controlling a Send Stream
Sending Captured Audio Out in a Single Session
Sending Captured Audio Out in Multiple Sessions
Transmitting RTP Streams with RTPSocket

Importing and Exporting RTP Media Streams

Reading RTP Media Streams from a File
Exporting RTP Media Streams

Creating Custom Packetizers and Depacketizers

RTP Data Handling
Dynamic RTP Payloads
Registering Custom Packetizers and Depacketizers

JMF Applet

StateHelper

Demultiplexer Plug-In

Sample Data Source Implementation

Source Stream

Sample Controller Implementation

TimeLineController
TimeLineEvent
EventPostingBase
ListenerList
EventPoster

RTPUtil

Glossary

Index



CONTENTS | PREV | NEXT | INDEX

Copyright © 1998-1999 Sun Microsystems, Inc. All Rights Reserved.