Core Video: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Updated to better describe current 10.5/10.6 implementations. Clarified role of the display link as in-composition rather than in-rendering. Updated links.
AdamAtlas (talk | contribs)
m consolidate some duplicate footnotes
Line 3: Line 3:
}}
}}


'''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 (graphics layer) | Quartz technologies]] for image rendering and composition. Both [[Quicktime X]] and [[QuickTime | QuickTime 7]] depend on Core Video.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html | accessdate=2009-09-24}}</ref>
'''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 (graphics layer) | Quartz technologies]] for image rendering and composition. Both [[Quicktime X]] and [[QuickTime | QuickTime 7]] depend on Core Video.<ref name="progguide">{{cite web | title=Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html | accessdate=2009-09-24}}</ref>


== Overview ==
== Overview ==
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.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Core Video Concepts | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Concepts/CVProg_Concepts.html#//apple_ref/doc/uid/TP40001536-CH202-BABJDFHJ | accessdate=2009-09-24}}</ref>
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.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Core Video Concepts | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Concepts/CVProg_Concepts.html#//apple_ref/doc/uid/TP40001536-CH202-BABJDFHJ | accessdate=2009-09-24}}</ref>


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.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html | accessdate=2009-09-24}}</ref>
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.<ref name="progguide" />


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.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html | accessdate=2009-09-24}}</ref>
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.<ref name="progguide" />


== History ==
== History ==
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.<ref>{{cite web | title=Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide | url=http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html | accessdate=2009-09-24}}</ref>
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.<ref name="progguide" />


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.<ref>{{cite web | title = Mac Dev Center - Mac OS X Technology Overview - Graphics and Multimedia Technologies | url=http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/OSX_Technology_Overview/GraphicsTechnologies/GraphicsTechnologies.html#//apple_ref/doc/uid/TP40001067-CH273-SW21 | accessdate=2009-09-24}}</ref>
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.<ref>{{cite web | title = Mac Dev Center - Mac OS X Technology Overview - Graphics and Multimedia Technologies | url=http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/OSX_Technology_Overview/GraphicsTechnologies/GraphicsTechnologies.html#//apple_ref/doc/uid/TP40001067-CH273-SW21 | accessdate=2009-09-24}}</ref>

Revision as of 02:31, 23 November 2009

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

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

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

  1. ^ a b c d "Mac Dev Center - Core Video Programming Guide - Introduction to Core Video Programming Guide". Retrieved 2009-09-24.
  2. ^ "Mac Dev Center - Core Video Programming Guide - Core Video Concepts". Retrieved 2009-09-24.
  3. ^ "Mac Dev Center - Mac OS X Technology Overview - Graphics and Multimedia Technologies". Retrieved 2009-09-24.