Version: 1.1

Posted: 2009-04-07

Build Requirements: Xcode v3.1

Runtime Requirements: Leopard v10.5

View Source Code:

Download Sample (“”, 1.35M)
Download Sample (“QTCoreVideo202.dmg”, 1.59M)


QTCoreVideo202 is a Cocoa application demonstrating how to render a QuickTime Movie using OpenGL PBO and the Core Video pixel buffer pipeline.

This sample is the fourth in a series of samples demonstrating the synergy between QTKit, CoreVideo, and OpenGL. QTCoreVideo202 makes use of the classes introduced in QTCoreVideo102 and introduces the OpenGL PBO framework.

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.

- OpenGLPBOUnpackKit - Manages OpenGL PBOs.

- 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.

The techniques introduced here are suited for applications that require direct access to the video pixel buffer, whilst taking advantage of GPUs performance with the use OpenGL PBOs. The main advantages of PBOs are fast pixel data transfer to and from a graphics card through DMA without involing CPU cycles, and asynchronous DMA transfers.

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

Document Revision History

Date Notes
2009-04-07Performance improvement with movie pixel buffersand streaming textures.
2008-06-06Demonstrates how to render a QuickTime Movie using OpenGL PBO and the Core Video pixel buffer 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.