<!--
{
  "documentType" : "article",
  "framework" : "CoreVideo",
  "identifier" : "/documentation/CoreVideo/pixel-buffer-attribute-keys",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Pixel Buffer Attribute Keys"
}
-->

# Pixel Buffer Attribute Keys

The attributes associated with a pixel buffer.

## Discussion

Use the pixel buffer attribute keys to tell Core Video how to allocate pixel buffers for compatibility with client requirements. A pixel buffer attributes dictionary is a Core Foundation dictionary that contains zero or more key-value pairs. You can pass this dictionary to functions such as [`CVPixelBufferCreate(_:_:_:_:_:_:)`](/documentation/CoreVideo/CVPixelBufferCreate(_:_:_:_:_:_:)) and [`CVPixelBufferPoolCreate(_:_:_:_:)`](/documentation/CoreVideo/CVPixelBufferPoolCreate(_:_:_:_:)).

To create an attributes dictionary that’s compatible for multiple clients, pass an array of each client’s attributes dictionary to [`CVPixelBufferCreateResolvedAttributesDictionary(_:_:_:)`](/documentation/CoreVideo/CVPixelBufferCreateResolvedAttributesDictionary(_:_:_:)).

## Topics

### Constants

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

A key to the allocator that the system uses to create the pixel buffer.

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

A key to one or more pixel buffer format types.

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

A key to the width of the pixel buffer.

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

A key to the height of the pixel buffer.

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

A key to the number of pixels padding the left of the image.

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

A key to the number of pixels padding the top of the image.

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

A key to the number of pixels padding the right of the image.

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

A key to the number of pixels padding the bottom of the image.

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

A key to a number that specifies the alignment of number of bytes per row in the pixel buffer.

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

A key to a Boolean value that indicates whether the pixel buffer is compatible with Core Graphics bitmap contexts.

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

A key to a Boolean value that indicates whether the pixel buffer is compatible with Core Graphics bitmap image types.

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

A key to a Boolean value that indicates whether the pixel buffer is compatible with OpenGL contexts.

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

A key to a number that specifies the alignment of the planes in the pixel buffer.

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

A key to the dictionary containing optional properties for the IOSurface framework.

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

A key to a Boolean value that indicates whether the pixel buffer is compatible with OpenGL ES contexts.

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

A key to a Boolean value that indicates whether the pixel buffer is compatible with the Metal framework.

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

A key to a Boolean value that indicates whether Core Animation can display the pixel buffer.

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

A key to a Boolean value that indicates whether OpenGL can create a valid texture for use as a color buffer attachment.

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

A key to a Boolean value that indicates whether OpenGL ES can create a valid texture for use as a color buffer attachment.

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

A key to a Boolean value that indicates whether OpenGL can create a valid texture object from the IOSurface-backed pixel buffer.

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

A key to a Boolean value that indicates whether OpenGL ES can create a valid texture object from the IOSurface-backed pixel buffer.

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

A key to a Boolean value that indicates whether OpenGL performs format conversions of the texture-cache data in a shader.

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

A key to a Boolean value that indicates whether OpenGL ES performs format conversions of the texture-cache data in a shader.

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



---

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)