Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Q&As > QuickTime > Movie Basics >

Determining required components for QuickTime movies


Q: What's the easiest way to determine whether a QuickTime movie I

have just opened requires a component that's not currently installed?

A: Use the GetMovieStatus or GetTrackStatus functions (see <http://developer.apple.com/documentation/quicktime/qtdevdocs/APIREF/SOURCESI/getmoviestatus.htm> and <http://developer.apple.com/documentation/quicktime/qtdevdocs/APIREF/SOURCESI/gettrackstatus.htm> for more information) and check the result code.

Note these functions search for errors in all the enabled tracks of the movie and return information about errors that are encountered during the processing associated with the MoviesTask function. Therefore, it's a requirement you at least attempt to render the movie and call the MoviesTask function.

If you would like to determine specifically which components are missing you could retrieve the sample descriptions for the movie using Movie Toolbox functions (GetTrackMedia, etc.). These sample descriptions will be of type ImageDescription for video media - then simply look at the codec type, vendor and name fields in the ImageDescription structure for information about the missing component. Finally, call the FindCodec function (see <http://developer.apple.com/documentation/quicktime/qtdevdocs/APIREF/SOURCESI/findcodec.htm>) to verify the components are actually installed.

Also, remember QuickTime 5 introduced a new software download mechanism to provide support for automatically downloading third-party components on an as-needed basis (see <http://developer.apple.com/documentation/quicktime/qtdevdocs/RM/rmWhatsnewQT.htm>). If the user opens a movie that requires a particular third-party codec, QuickTime will offer to download and install it. Therefore, you should keep in mind while there may have been an initial failure in finding a particular component for a movie, QuickTime's automatic update mechanism may be working in the background to download the component asynchronously (only, of course, if the user agrees to download it). The missing component could show up at any time.


[Nov 07 2001]