Chapter 1. Programming with the IRIS Digital Media Development Environment

The IRIS Digital Media Development Environment provides a digital media software development environment that includes audio, video, movie, and compression libraries.

This chapter provides an overview of the uses and features of these libraries:

You can use these libraries in conjunction with other Silicon Graphics libraries, such as the ImageVision Library; see the individual library descriptions to learn which libraries are compatible.

About the Digital Media Library

The Digital Media (DM) Library, libdmedia.so, is a library that currently supports parameter setting and ring buffering for applications that use the IRIS Digital Media software. Currently, you can use the DM routines with the Movie Library and the Video Library.

The DM Library features:

  • type definitions for digital media

  • routines for creating and configuring digital media parameters

  • routines for creating and configuring digital media ring buffers

  • a debugging version of the library that lets you check for proper usage

About the Digital Audio and MIDI Libraries

Silicon Graphics offers a collection of libraries designed for developers of digital audio and MIDI software, as well as those seeking to integrate audio into their existing applications:

  • Audio Library (libaudio.a)

  • Audio File Library (libaudiofile.so)

  • Audio Utility Library (libaudioutil.so)

  • CD Audio Library (libcdaudio.a)

  • DAT Audio Library (libdataudio.a)

  • MIDI Library (libmd.so)

The digital audio libraries can be used separately or in combination. Each library is tailored to a particular set of tasks, as follows:

Audio Library

Provides an API for configuring the audio system, managing audio I/O between the application program and the audio hardware, specifying attributes of digital audio data, and facilitating real- time programming. See Chapter 6, “Programming with the Audio Library.”

Audio File Library

Provides an API for reading and writing two standard digital audio file formats, AIFF and AIFF–C. See Chapter 7, “Programming with the Audio File Library.”

Audio Utility Library

Provides convenience routines for creating and configuring Audio File Library data structures.

CD Audio Library

Provides an API for optional Silicon Graphics SCSI CD-ROM drives. The drive features a special mode that allows it to read audio CD format as well as CD–ROM format. See Chapter 8, “Programming with the CD Audio Library.”

DAT Audio Library

Provides an API for optional Silicon Graphics SCSI DAT drives. See Chapter 9, “Programming with the DAT Audio Library.”


About the Video Library

The Video Library (VL) is a collection of device-independent C language calls for Silicon Graphics workstations equipped with video options, such as Sirius Video™, Indigo2 Video™, Indy Video™, or Galileo Video ™, or workstations equipped with on-board video, such as Indy™.

The VL provides generic video tools, including simple tools for importing and exporting digital data to and from current and future Silicon Graphics video hardware, as well as to and from third-party video devices that adhere to the Silicon Graphics architectural model for video devices. Video tools are described in the Media Control Panels User's Guide, which you can view using the IRIS InSight viewer; similar applications are supplied in source-code form as examples in the 4Dgifts directory (/usr/people/4Dgifts/examples/dmedia/video/vl).

The VL provides an API that enables applications to:

  • perform video teleconferencing on platforms that support it

  • blend computer graphics with frames from videotape or any video source

  • present video in a window on the workstation screen

  • digitize video data


Note: The range of VL capabilities you can use depends on the capabilities of your workstation and the video options installed in it.


About the IndigoVideo Library

The IndigoVideo board provides video input and output for IRIS Indigo workstations equipped with Entry graphics. The IndigoVideo Library provides a software interface to the IndigoVideo board, enabling applications to:

  • display live video in a window

  • capture live video to system memory

  • encode graphics to video in real time

  • produce high-quality single-frame video output

About the Compression Library

The Compression Library, libcl.so, provides a flexible, extensible, and algorithm-independent software interface for compressing and decompressing audio, video, and image data.

The Compression Library features:

  • algorithm independence

  • hardware independence

  • support of industry standard algorithms

  • support of Silicon Graphics proprietary algorithms

  • binary compatibility across Silicon Graphics platforms

The Compression Library provides facilities for working with audio, still images, sequential frames of data (movies), and a buffering mechanism for nonsequential compression and decompression.

You can query the Compression Library for the available algorithms, and you can add your own algorithms and parameters. A pass-through capability allows you to pass data through the routines without using an algorithm.

The Compression Library can be used with the Audio File Library, and with data used by the IRIS Movie Player and Movie Maker tools.

About the Movie Library

The Movie Library, libmovie, is a collection of routines that provides a C language API for reading, writing, editing, and playing movies on Silicon Graphics workstations. The API provides a uniform interface to movies of various formats and lets you convert movies from one format to another.

The Movie Library features:

  • the ability to read, write, and play movie files

  • a file-format-independent API

  • file format conversion capabilities

  • support for Silicon Graphics Movie format, versions 2.0 and 3.0

  • support for Apple® Computer QuickTime™ movie format

  • data compression and decompression

  • asynchronous playback support

  • flexible playback control

  • support for movies embedded in applications software