Technical Q&As


QTPC 04 - UndocumentedFlags To Change Movie Playback (1-June-95)


Q Are there any undocumented flags in QuickTime 2.0 for Macintosh and Windows? If so, what can I do with these?

A There are two API calls, SetMoviePlayHints and SetMediaPlayHints, documented on page 2-137 to 2-140 in Inside Macintosh: QuickTime, that provide information to the movie toolbox in order to change the playback behavior of the movie. If you set specific flags, the playback engine will honor these flags independently, whether or not the code used for movie playback knows about these flags. Note that, with the exception of the hintsloop flag, these flags are currently not supported by QuickTime for Windows. It still makes sense, however, to use them because future versions of QuickTime for Windows will support them.

New flags have been added with each release; these are documented in Inside Macintosh: QuickTime, Technotes and QuickTime 2.0 developer documentation. Some are undocumented flags. What follows is the lateset information on possible hint flags. Note these flags are defined in the Movies.h file (Universal Headers 2.0a3 forward).

hintsScrubMode (QT 1.5 forward)

This flag indicates that the movie toolbox can prefer to display key frames when the movie is repositioned. If you set this flag, the movie toolbox is free to display the nearest key frame when you set the movie's current time (nudge effect). By displaying key frames first, the movie toolbox can display data more quickly from temporally compressed movies in response to changes in time (no need to build new frames from temporally compressed frame data).

hintsUseSoundInterp (QT 1.5 forward)

This turns on sound interpolation and tells the Sound Manager to use sound interpolation when playing back sound. In certain situations, this improves the sound quality to 11kHz.

hintsAllowInterlace (QT 1.5 forward)

This tells the Image Compression Manager to use the interlace option for image compressor and decompressor components.

hintsHighQuality (QT 1.6 forward)

This specifies that the given movie or media should render at the highest quality. Rendering at highest quality may take considerably more time and memory. Therefore, this mode is typically not appropriate for real-time playback, but is very useful for recompressing because it can generate higher quality images. Note that this flag might cause slowdown in drawing the frames per second.

hintsDontPurge (QT 2.0 forward)

This tells the movie toolbox not to dispose of movie data after playing. The movie toolbox leaves the data in memory, in a purgeable handle. This can enhance the playback of small movies that are looping. It can also consume larger amounts of RAM memory.

hintsInactive (QT 2.0 forward)

This tells the movie toolbox the movie is not in an active window. This will allow the toolbox to allocated more efficiently scarce system resources. For instance, the movie controller component uses this hint for all movies it manages.

hintsPalindrome (QT 2.0)

Enable this flag if you are sure the movie will always play in a palidrome loop. Note that the movie controller will automatically take care of this flag.

hintsLoop (QT 2.0)

Enable this flag if you are sure the movie will always loop (from beginning to end to beginning). Note that the movie controller will automatically take care of this flag.

hintsUseScreenBuffer

Currently, we don't recommend using this flag.

Technical Q&As
Previous Question | Contents | Next Question