<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "CoreVideo",
  "identifier" : "/documentation/CoreVideo",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Core Video"
    ],
    "preciseIdentifier" : "CoreVideo"
  },
  "title" : "Core Video"
}
-->

# Core Video

Process digital video, including manipulation of individual frames, using a pipeline-based API and support for both Metal and OpenGL.

## Overview

Core Video provides a pipeline model for digital video. It simplifies working with video by partitioning the process into discrete steps. This makes it easier for developers to access and manipulate individual frames without having to worry about translating between data types or display synchronization issues. Apps that don’t need to manipulate individual video frames don’t need to use Core Video directly.

## Topics

### Data Processing

[CVBuffer](/documentation/CoreVideo/cvbuffer-nfm)

An abstract base class that defines how to interact with data buffers.

[CVImageBuffer](/documentation/CoreVideo/cvimagebuffer-q40)

An interface for managing different types of image data.

[CVPixelBuffer](/documentation/CoreVideo/cvpixelbuffer-q2e)

An image buffer that holds pixels in main memory.

[CVPixelBufferPool](/documentation/CoreVideo/CVPixelBufferPool-77o)

A utility object for managing a recyclable set of pixel buffer objects.

[CVPixelFormatDescription](/documentation/CoreVideo/CVPixelFormatDescription-42p)

An API that provides functions and types for defining custom pixel formats.

### Time Management

[CVTime](/documentation/CoreVideo/cvtime-q1e)

A structure used for storing Core Video time values.

[CVDisplayLink](/documentation/CoreVideo/cvdisplaylink-k0k)

A high-priority thread that notifies your app when a given display will need each frame.

### Metal

[CVMetalTextureCache](/documentation/CoreVideo/cvmetaltexturecache-q3j)

A cache used to create and manage Metal texture objects.

[CVMetalTexture](/documentation/CoreVideo/cvmetaltexture-q3g)

A texture-based image buffer that supplies source image data for use with the Metal framework.

[`CVMetalBufferCache`](/documentation/CoreVideo/CVMetalBufferCache)

A cache used to create and manage Metal buffer objects.

### OpenGL

[CVOpenGLTextureCache](/documentation/CoreVideo/cvopengltexturecache-780)

A cache used to create and manage OpenGL texture objects.

[CVOpenGLTexture](/documentation/CoreVideo/cvopengltexture-782)

A texture-based image buffer that supplies source image data to OpenGL.

[CVOpenGLBuffer](/documentation/CoreVideo/cvopenglbuffer-77s)

An image buffer used to store image data in video memory.

[CVOpenGLBufferPool](/documentation/CoreVideo/cvopenglbufferpool-77j)

A utility object for managing a set of recyclable OpenGL buffer objects.

### OpenGL ES

[CVOpenGLESTextureCache](/documentation/CoreVideo/CVOpenGLESTextureCache-q2r)

A cache used to create and manage OpenGL ES texture objects.

[CVOpenGLESTexture](/documentation/CoreVideo/cvopenglestexture-q2s)

A texture-based image buffer that supplies source image data to OpenGL ES.

### Core Video Error Constants

[Result Codes](/documentation/CoreVideo/result-codes)

Describes the result codes generated by Core Video operations.

[Data Types](/documentation/CoreVideo/data-types)

Common data types used by the Core Video framework.

[`CVError`](/documentation/CoreVideo/CVError)

`CVError` wraps `CVReturn` values to present them as Swift Error values. This type is
used for all errors thrown in the CoreVideo framework. All `CVReturn` values are
provided as static constants.

### Reference

[Core Video Enumerations](/documentation/CoreVideo/core-video-enumerations)

[Core Video Constants](/documentation/CoreVideo/core-video-constants)

[Core Video Functions](/documentation/CoreVideo/core-video-functions)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)