Core Video

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Core Video is the video processing model employed by Mac OS X. It links the process of decompressing frames from a video source to the rest of the Quartz technologies for image rendering and composition. Both QuickTime X and QuickTime 7 depend on Core Video.[1]

Overview[edit]

Core Video provides both a buffering model and a playback synchronization solution within its processing pipeline. A video source provides a decompressed data stream to be rendered as images within a visual context in Quartz 2D. Core Video can be thought of as the link between this video source and its display context. Rendered images can be further processed by Core Image before being composed into a final scene with Quartz Compositor. As part of the composition process, Core Video maintains a frame buffer, keeping a pool of rendered, composed frames ready for playback. To ensure smooth playback, Core Video uses a high-priority thread to maintain its frame buffer. This display link runs independently from the application which invokes video playback, and it compensates for different display refresh rates and latency.[2]

Because QuickTime 7 employed Core Video, it was the first version of QuickTime to implement the rendering capability of Quartz. Previous versions of QuickTime used QuickDraw for rendering. Although Core Video typically interacts with QuickTime, it can interact with any video source.[1]

Core Video benefits from graphics processor (GPU) rendering and composition provided by Quartz GL, Core Image, and Quartz Extreme, since final playback is composed on an OpenGL surface.[1]

History[edit]

Although Core Video was introduced with the release of Mac OS X v10.4, it is included in the installation of QuickTime 7 on Mac OS X; thus, Core Video is available for Mac OS X 10.3.9 with QuickTime 7 installed as well.[1]

In Mac OS X 10.4, Core Video is implemented as part of the QuartzCore framework; in Mac OS X 10.5 and later, it resides in its own framework.[3]

References[edit]