# JavaTM Media Framework 2.1.1e API
README and BINARY CODE LICENSE

### Table of Contents

- Introduction
- Quick Install
- Security Note
- JMF Install Contents
- Distributing JMF with your Java software
- JMF Binary Code License

### Introduction

The JavaTM Media Framework (JMF) is an application programming interface (API) for incorporating media data such as audio and video into Java applications and applets. It is specifically designed to take advantage of Java platform features.

The JMF 1.0 API (the Java Media Player API) enables programmers to develop Java programs for playback of time-based media. The JMF 2.0 API extends the framework by providing support for capturing and storing media data, controlling the type of processing that is performed during playback, and performing custom processing on media data streams. In addition, JMF 2.0 defines a plug-in API that enables advanced developers and technology providers to more easily customize and extend JMF functionality.

The latest implemenation of this API from Sun is JMF 2.1.1e, which includes several improvements to RTP/RTSP components and numerous bug-fixes.

You can download all of the documentation for this release, including the setup information and sample code, from:

> `http://java.sun.com/products/java-media/jmf/2.1.1/documentation.html`

### Quick Install

Here are some quick instructions for installing JMF 2.1.1e. Complete instructions for setting up and running JMF are available from the JMF web site at:

> `http://java.sun.com/products/java-media/jmf/2.1.1/setup.html`

#### Installing JMF 2.1.1e or JMF 2.1.1e for Web Servers (i.e. Java versions)

The install package for Java clients is a zip file. Use a zip utility to extract the files and then set your class path to reference the JMF directory. For example:

> On Solaris and Linux:

> > `setenv JMFHOME /home/someuser/JMF2.1.1
> > setenv CLASSPATH $JMFHOME/lib/jmf.jar:.:${CLASSPATH}:`

> On AIX:

> > `setenv JMFHOME /usr/JMF2.1.1
> > setenv CLASSPATH $JMFHOME/lib/jmf.jar:.:${CLASSPATH}:`

> On Windows:

> > `set JMFHOME=C:\JMF2.1.1
> > set CLASSPATH=%JMFHOME%\lib\jmf.jar;.;%CLASSPATH%`

#### Installing JMF 2.1.1 with Solaris or Linux Performance Pack

The Solaris and Linux install packages contain an exectuable installation program. Run the installation program to extract JMF and then set your class path to reference the JMF directory. For example:

> `setenv JMFHOME /home/someuser/JMF2.1.1
> setenv CLASSPATH $JMFHOME/lib/jmf.jar:$JMFHOME/lib/sound.jar:.:${CLASSPATH}`

You'll also need to set your LD_LIBRARY_PATH (shared libraries path) to point to the JMF libraries. For example:

> `setenv LD_LIBRARY_PATH $JMFHOME/lib:${LD_LIBRARY_PATH}`

#### Installing JMF 2.1.1 with Windows Performance Pack

The Windows install package package contains an InstallShield installation program. Run the installation program to extract JMF and configure your environment variables.During installation, InstallShield should automatically set up your CLASSPATH and PATH:

> `set CLASSPATH=%JMFHOME%\lib\jmf.jar;%JMFHOME%\lib\sound.jar;.;%CLASSPATH%
> set PATH=%WINDIR%\System32;%PATH% (on Windows NT)
> set PATH=%WINDIR%\System;%PATH% (on Windows 95/98)
> `

### Verifying your Installation

To verify that JMF is set up properly on your system, use the JMF Diagnostics applet at:

> `http://java.sun.com/products/java-media/jmf/2.1.1/jmfdiagnostics.html`

### Security Note

During the installation, you will be asked two security related questions:

- Permit recording from an applet

  If you agree to this, JMF will allow applets to capture audio and video from the local capture devices. It is possible for a malicious hidden applet on a web page to quietly record sounds or video from your system and transmit the data back to a system on the internet. This is usually a risk only if you visit unfamiliar web sites.

  You can disable or enable this feature by running the JMFRegistry application (or choose Preferences from the JMStudio File menu), modify the setting in the User Settings tab and commit the changes.

- Permit writing local files from an applet

  This is a greater security risk since a malicious applet can overwrite files on your hard disk without your knowledge. Enable this feature only if you need it for a specific application and are sure that you will not visit any possibly malicious web sites.

  You can disable or enable this feature by running the JMFRegistry application (or choose Preferences from the JMStudio File menu), modify the setting in the User Settings tab and commit the changes.

### JMF Install Contents

This release contains the following directories:

- bin - contains scripts to launch a few java applications
- doc - contains this file
- lib - contains the compiled java classes and the compiled native libraries for the JMF players

### Distributing JMF with your Java software

Sun Microsystems allows vendors to distribute JMF 2.1.1e with their Java software, as long as their software uses JMF 2.1.1e and provided they follow the terms of the JMF 2.1.1e Binary Code License agreement. This document uses the term "vendors" to refer to licensees, developers, and independent software vendors (ISVs) who license and distribute the JMF with their Java programs.

#### REQUIRED versus OPTIONAL FILES

Vendors must follow the terms of the JMF Binary Code License agreement, which includes these terms:

- Don't arbitrarily subset the JMF. You may, however, omit those files that have been designated below as "optional" or that are removable by using the JMF Customizer Tool provided.
- Include in your product's license the provisions called out in the JMF Binary Code License.

#### Bundling JMF

This Solaris, Linux and Windows version of the JMF comes with its own installer that simplifies the installation of JMF. Other versions of JMF are bundled in a zip file which needs to be unzipped to be installed.

Vendors have the option of delivering the Solaris, Linux, Windows, and/or zip install binaries with their software, and having the user run them separately, or to bundle JMF directly with the install procedures of thier software.

#### Required Files

All the files and directories in the lib directory are required unless they are listed under Optional Files below or are removable using the JMF Customizer Tool. Likewise, this readme.html is a required file and must always be included with JMF 2.1.1e.

#### Optional Files

The following files are optional:

- doc/*
- bin/*
- lib/soundbank.gm
- lib/sound.jar
- lib/jsound.dll or lib/libjsound.so

JavaTM Media Framework (JMF) 2.1.x
Binary Code License Agreement

READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY "AGREEMENT") CAREFULLY BEFORE OPENING THE SOFTWARE MEDIA PACKAGE. BY OPENING THE SOFTWARE MEDIA PACKAGE, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS, PROMPTLY RETURN THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF THE SOFTWARE IS ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" BUTTON AT THE END OF THIS AGREEMENT.

1. License to Use. Sun Microsystems, Inc. ("Sun") grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer hardware for which the corresponding fee has been paid.

2. Restrictions. Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by Sun and/or its licensors. Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other than a single copy of Software for archival purposes. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software. You acknowledge that Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility. Sun disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.

3. Limited Warranty. Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use. Except for the foregoing, Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's option to replace Software media or refund the fee paid for Software.

4. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.

5. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by you for Software under this Agreement. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose.

6. Termination. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of Software. This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement. Upon Termination, you must destroy all copies of Software.

7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be subject to export or import regulations in other countries. You agree to comply strictly with all such laws and regulations and acknowledge that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you.

8. U.S. Government Restricted Rights. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set forth in this Agreement; this is in accordance with 48 C.F.R. 227.7202-4 (for Department of Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions).

9. Governing Law. Any action related to this Agreement will be governed by California law and controlling U.S. federal law. No choice of law rules of any jurisdiction will apply.

10. Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.

11. Integration. This Agreement is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.

JavaTM Media Framework (JMF) 2.1.x
Supplemental License Terms

These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively, the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software.

1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole purpose of designing, developing and testing your Java applets and applications ("Programs").

2. License to Distribute Software. In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to, Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary code form only, provided that you: (i) distribute the Software complete and unmodified, except that you may omit those files specifically identified as"optional" in the Software "README" file, which include samples, documents, and bin files, or that are removable by using the Software customizer tool provided, only as part of and for the sole purpose of running your Program into which the Software is incorporated; (ii) do not distribute additional software intended to replace any components of the Software; (iii) do not remove or alter any proprietary legends or notices contained in the Software; (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement; and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts or expenses, including attorneys' fees, incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs or Software.

3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java" package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or modification of the classes in the JPI. In the event that you create an additional class and associated API's, which: (i) extends the functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers. You may not create, or authorize your licensees to create additional classes, interfaces, packages or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any class file naming convention designation.

4. Java Runtime Availability. Refer to the appropriate version of the Java Runtime Environment binary code license (currently located at http://www.java.sun.com/jdk/index.html) for the availability of runtime code which may be distributed with Java applets and applications.

5. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks inures to Sun's benefit.

6. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement. Source code may not be redistributed unless expressly provided for in this Agreement.

7. Termination for Infringement. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right.

For inquiries please contact: Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, California 95054.

LFI# 129621/Form ID#011801

This page was last modified on 1-May-2003
Copyright 1995-2003, Sun Microsystems, Inc.
All Rights Reserved