home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 9. _M_o_v_i_e__L_i_b_r_a_r_y
-
- This chapter lists information about the Movie Library
- programming interface included IRIS Digital Media
- Development Environment. It includes changes, additions,
- and bug fixes since the IRIX 5.3 releases, known problems
- and workarounds.
-
- The IRIS Movie Library is a application programming
- interface for the creation of programs which read, write,
- and play movies. A movie is a file containing sequences of
- images and/or audio. A movie is a useful display method for
- graphical sequences which cannot be rendered in real time or
- for any sequenced image data. The Movie Library currently
- provides support for the native Silicon Graphics movie file
- format, QuickTime(*) file format, MPEG I Systems Layer, and
- the AVI format, and DIF format (DVC/DVCPro raw data). Not
- all of the movie library features are available with all
- file formats.
-
- The main features of the Movie Library (MV) are:
-
- +o Ability to read, write, and play movie files.
-
- +o High level interface to image data compression.
-
- +o Support for several file formats, including
-
- Apple QuickTime(*)
-
- AVI
-
- DIF (Raw DV) files
-
- MPEG-1 system bitstreams
-
- MPEG-1 video bitstreams
-
- SGI Movie
-
- +o File-format independent API.
-
- +o Asynchronous playback support with flexible controls.
-
- +o Basic editing features for image and audio sequences.
-
- +o Support for embedded movies in applications software.
-
- The Movie Library is composed of two high-level DSO's,
- _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
- public movie API calls. Debugging versions of the library
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- are available as well (/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_f_i_l_e._s_o and
- /_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_p_l_a_y._s_o). They perform extra error
- checking on all parameters passed into the library and
- provide more extensive feedback to the programmer as to what
- might be wrong. However, they also incur a substantial
- overhead and it is not recommended that they be for anything
- other than testing. They may be used by setting
- LD_LIBRARY_PATH (or LD_LIBRARYN32_PATH) to point at
- /usr/lib/debug (or /usr/lib32/debug) and running the
- application. See rrrrlllldddd((((1111)))) for more information.
-
- For additional information about the Movie Library see the
- overview manual page mmmmvvvvIIIInnnnttttrrrroooo(3mv).
-
-
-
- 9.1 _P_r_o_g_r_a_m_m_i_n_g__E_x_a_m_p_l_e_s
-
- A number of example programs which provide coverage of many
- of the calls in the library are also included. They are
- contained in the dmedia_dev.src.examples portion of the
- install image and get installed in
- /usr/share/src/dmedia/movie. A README file there explains
- each of the example programs.
-
-
- 9.2 _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
-
- This section lists changes and additions made to the Movie
- Library since the release of IRIX 5.3.
-
- IRIX 6.3 introduced a new version of the Movie Library. This
- new verion is composed of two high-level DSO's,
- _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
- public movie API calls, together with a few private
- rendering and display port DSO modules (see
- /_u_s_r/_l_i_b/_d_m_e_d_i_a/_m_o_v_i_e/*._s_o) which are loaded internally by
- the movie playback DSO. Applications may link with either
- "-lmovieplay -lmoviefile" or just "-lmoviefile" depending on
- their requirements. Applications do not link directly with
- the low-level rendering/display modules. Applications built
- using versions of _l_i_b_m_o_v_i_e._a or _l_i_b_m_o_v_i_e_G_L._a from previous
- IRIX releases should continue to operate correctly without
- recompile on 6.3 and later releases.
-
- +o IRIX 6.5.14 adds to the support for reading of
- QuickTime None movie files which have a depth of 1, 2,
- 4 and 8 bit color and 4, 8 bit grey scale.
-
- +o IRIX 6.5.14 adds support for reading of QuickTime BMP
- movie files which have a depth of 1, 2, 4, 8, 24 and 32
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- color and 4, 8 bit grey scale.
-
- +o IRIX 6.5.14 adds support for reading of QuickTime
- Planar RGB movie files which have a depth of 8, 24, and
- 32 color and 8 bit grey scale.
-
- +o IRIX 6.5.12 adds support for reading of 1, 2, 4, 8, 16
- and 24 bit uncompressed AVI files. Originally only 32
- bit uncompressed AVI files were supported.
-
- +o IRIX 6.5.12 adds support for reading of Microsoft RLE
- compressed AVI files.
-
- +o IRIX 6.5.12 adds support to allow reading of compressed
- header Quicktime(*) movie files.
-
- +o For Irix 6.5, the movie library has been enhanced to
- support certain common kinds of compressed audio in
- QuickTime(*) movies. QuickTime(*) movies with IMA4
- (also known as IMA4:1) compressed audio tracks are now
- readable, as are DV-Audio compressed tracks. (DV-Audio
- compression is also supported in DIF streams.) Note
- that IMA4 is supported read-only (ie, decompress-only).
- DV-Audio compressed data can be created only when
- exporting a DIF stream using mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
-
- +o Standard QuickTime(*) Motion JPEG-A (MJPEG-A) field
- based compression is now supported in Irix 6.5 (it was
- available in 6.3 with appropriate patches as well).
- MJPEG-A is a powerful format because it is cross-
- platform, so that the same movie can be played on
- SGI's, Mac's and PC's in realtime, with appropriate
- hardware, such as the O2's built in ICE hardware.
-
- +o In Irix 6.5, a new function has been added to allow
- simplified generation of movies which are optimized for
- playback. Please see man mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
-
- +o The movie library supports more hardware for playing
- back movies, such as Cosmo Compress, O2's built in ICE,
- Impact Compression, etc.
-
- +o Several functions have been added to the Movie Library
- to provide time based access to and editing of movie
- data in addition to the existing frame based calls.
- See the "FRAME, TIME and TIMESCALE" section of
- mmmmvvvvIIIInnnnttttrrrroooo(3dm) for more details.
-
- +o In 5.3 mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) would return different formats
- (eg, pixel packing, orientation, etc), depending upon
- how the data was stored in the file. Now
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) ALWAYS returns the same pixel
- formats.
-
- mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm) used to expect its input format
- (eg, pixel packing orientation, etc) to be correlated
- to the file format/codec. Now it ALWAYS expects data to
- be in the same format.
-
- These changes were made to prevent requiring every
- application to understand how to perform image
- conversions.
-
- See the man page for additional information about
- mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) and mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm).
-
- +o The QuickTime(*) Compressor Library product no longer
- exists. Applications that link with _l_i_b_m_o_v_i_e._s_o will
- now be able to read and create movies compressed with
- the Apple Animation and Apple Video compression
- algorithms without linking with _l_i_b_q_t._a or calling
- mmmmvvvvIIIInnnniiiittttQQQQuuuuiiiicccckkkkTTTTiiiimmmmeeee. Applications will also be able to read
- and write Cinepak (Compact Video) movies. The movie
- library will also recognize and play back QuickTime(*)
- movies compressed with Indeo(tm) compression, and
- DVC/DVCPro compression.
-
- +o The Movie Library now supports multiple audio and video
- tracks in QuickTime(*) files. New calls allow the
- programmer to find the number of tracks and retrieve
- track handles on each one. Multiple tracks of a given
- medium may be played simultaneously or sequentially
- under program control.
-
- +o The Movie Library has been extended to allow external
- data references for tracks. A track that contains an
- external data reference has data that resides in a
- separate file. The Movie Library access this file as
- necessary during movie editing and playback.
-
- +o The Movie Library no longer requires that each frame in
- an image track have the same duration. A sequence of
- an image track may be scaled by an application to
- increase or shorten its playback time.
-
- +o In general, many more forms of QuickTime(*) movies are
- recognized.
-
- +o Read only support for MPEG I Systems streams is new in
- this version of the Movie Library. MPEG movies may be
- played using the Movie Library's playback calls.
- However, most calls that manipulate movie data, such as
-
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
- editing or reading compressed images, are not supported
- for MPEG files.
-
- +o AVI support has been added to the movie library. The
- compression types currently supported for AVI files are
- Cinepak, Indeo, and uncompressed.
-
- +o The Movie Library now supports controlling the image
- compression quality, bitrate, and keyframe frequency of
- data in an image track. These qualities can be
- controlled by setting the appropriate DMparams when the
- image track is created. See the mmmmvvvvAAAAddddddddTTTTrrrraaaacccckkkk(3dm) man
- page for more details.
-
- +o The Movie Library now supports software scaling of the
- volume of a playing movie. See
- mmmmvvvvGGGGeeeettttMMMMoooovvvviiiieeeePPPPllllaaaayyyyVVVVoooolllluuuummmmeeee(3dm) for more details.
-
-
-
- 9.3 _B_u_g__F_i_x_e_s
-
- This sections lists some of the known bugs that have been
- fixed since 5.3
-
- +o Bug #610693: As of Irix 6.5.1, uncompressed frame-based
- (ie, interleaved-fields) uncompressed 8-bit YUV422
- QuickTime(*) movies generated by the SGI movie library
- will now be readable on other platforms which support
- QuickTime(*) 3.0. Note that these movies may not play
- back correctly on older Irix releases, but movies
- generated on older Irix releases will be playable on
- Irix 6.5.1.
-
- +o The problems many users ran into with upside down and
- non-color converted uncompressed QuickTime(*) movies
- are solved by the fact that mvReadFrames now always
- returns XBGR, bottom-to-top, non interlaced data.
-
- +o Stereo audio in QuickTime(*) files is now handled
- correctly.
-
- +o The Movie Library's playback engine has been modified
- to pick up edits made to a movie. For example, if
- frames are added to a movie that's been bound to a
- window but is currently not playing the playback
- instance will pick up the change and play all the
- frames of the movie. It should be noted that no edits
- should be made to the movie while the movie is
- currently playing.
-
-
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- +o The Movie Library now supports playing back tracks of
- different lengths. For example, playing a movie with a
- video track that is longer than its audio track will
- play all the frames of the video track even after the
- audio has stopped playing.
-
- +o Calling mmmmvvvvSSSSttttoooopppp as the playback engine reached the last
- frame of a movie could result in a deadlock condition
- in the 5.3 Movie Library. This can no longer happen.
-
-
- 9.4 _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
-
-
- This section lists some of the known problems with the Movie
- Library.
-
- +o The SGI movie file format used by the Movie Library is
- different from that used prior to the release of Irix
- 5.2. However, movies in the older format can still be
- read and played by the Movie Library. Only the current
- format can be written.
-
- +o If the machine on which you are playing a movie cannot
- handle the frame rate specified, the audio may sound
- choppy.
-
- +o Setting the play speed of the movie to 0 with
- mvSetPlaySpeed() will cause the movie library to crash.
- The workaround for this is to call mvStop() instead of
- setting the play speed to 0.
-
- +o If a QuickTime(*) movie contains complex elements that
- the Movie Library does not fully support, the movie
- will be opened read only. The movie must be copied to
- create a movie that can be edited.
-
- (*) QuickTime is a registered trademark of Apple Computer,
- Inc.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-