Version: 1.0.1

Posted: 2009-04-07

Build Requirements: Xcode v3.1

Runtime Requirements: Leopard v10.5

View Source Code:

Download Sample (“”, 1.56M)
Download Sample (“QTCoreVideo301.dmg”, 1.83M)


QTCoreVideo301 is a Cocoa application demonstrating how to apply GLSL shader effects to a QuickTime Movies in realtime using the combination of GLSL fragment and vertex shaders and the Core Video texture pipeline.

This application is the fifth in a series of applications demonstrating the synergy between QTKit, CoreVideo, and OpenGL. QTCoreVideo301 makes use of the classes introduced in QTCoreVideo102 and introduces the GLSLKit class and the notion of self-contained GLSL units.

This sample also demonstrates, through the use of GLSL units, how to use application controls to interact dynamically with a GLSL fragment shaders. Additionally, this sample makes use of UI animation techniques; to fade-in or fade-out controls depending on a selected video effect (or shader).

Using Core Video texture pipeline and OpenGL shaders, permits applications to add stunning visual effects to individual frames in realtime.

Base Classes:

- OpenGLViewKit - Allows you to work with OpenGLViews, interact with objects in 3D space.

- QTCoreVideoController - Request broker between the OpenGL models and the OpenGL views.

- MemObject - Memory container class.

- AlertPanelKit - Utility class for displaying alerts.

Derived Classes:

- QTCoreVideoOpenGLView - Derived from OpenGLViewKit, concrete view class.

- QTVisualContextKit - Utility class for maintaining Core Video PixelBuffer and Core Video OpenGL textures.

- GLSLKit - Utility toolkit to manage vertex and fragment shaders.

- GLSLUnit - Utility toolkit representing a self-contained fragment and vertex shader.

- OpenGLQuad - Allows you to instantiate a Quad object as a display list.

- OpenGLTeapot - Allows you to instantiate a Teapot object as a display list.

- OpenGLTeapotTextured - Derived from OpenGLTeapot maintains a texture associated with a Teapot surface.

This sample is part of the QTCoreVideo group of samples. Also see QTCoreVideo101, QTCoreVideo102, QTCoreVideo103, QTCoreVideo201, and QTCoreVideo202.

Document Revision History

Date Notes
2009-04-07Fixed an issue with shader units that caused an OpenGL error.
2008-06-06Demonstrates adding of effects & filters to QuickTime Movies in realtime using GLSL shaders and the Core Video texture pipeline.

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.