The QuickTime API includes over 2500 functions, divided into tool sets for particular tasks, with special functions and data types for virtually any task [...] You can interact with the QuickTime API at many different levels:
* You can simply open and play movies, letting QuickTime handle all the file and format conversion, synchronization, data buffering, component loading and unloading, memory management, and even the user interface. Prebuilt controls are available for play/pause, volume control, time scrubbing, and cut-and-paste editing.
* You can control the playback or editing yourself, setting the play rate, scaling the duration of movie or track segments, rearranging the playback order, and so on, creating your own user interface and controls.
* You can work with individual components, loading particular importers or image decompressors, applying them to groups of files or blocks of memory, and disposing of them when you are done.
* You can work with individual data samples—synthesizing graphics and overlaying them on video frames as a movie plays, for example—or performing pattern recognition on groups of samples, or even generating whole movies programatically.
* You can write new QuickTime components to support features such as new compression algorithms, new media types, new media capture devices, output devices, or data sources.