<!--
{
  "documentType" : "article",
  "framework" : "CoreVideo",
  "identifier" : "/documentation/CoreVideo/CVPixelBufferPool-77o",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "CVPixelBufferPool"
}
-->

# CVPixelBufferPool

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

## Topics

### Creating pools

[`CVPixelBufferPoolCreate(_:_:_:_:)`](/documentation/CoreVideo/CVPixelBufferPoolCreate(_:_:_:_:))

Creates a pixel buffer pool using the allocator and attributes that you specify.

[`CVPixelBufferPoolCreatePixelBuffer(_:_:_:)`](/documentation/CoreVideo/CVPixelBufferPoolCreatePixelBuffer(_:_:_:))

Creates a pixel buffer from a pixel buffer pool, using the allocator that you specify.

[`CVPixelBufferPoolCreatePixelBufferWithAuxAttributes(_:_:_:_:)`](/documentation/CoreVideo/CVPixelBufferPoolCreatePixelBufferWithAuxAttributes(_:_:_:_:))

Creates a new pixel buffer with auxiliary attributes from the pool.

### Flushing pools

[`CVPixelBufferPoolFlush(_:_:)`](/documentation/CoreVideo/CVPixelBufferPoolFlush(_:_:))

Frees pixel buffers from the pool based on the options that you specify.

### Inspecting pools

[`CVPixelBufferPoolGetAttributes(_:)`](/documentation/CoreVideo/CVPixelBufferPoolGetAttributes(_:))

The pool attributes dictionary for a pixel buffer pool.

[`CVPixelBufferPoolGetPixelBufferAttributes(_:)`](/documentation/CoreVideo/CVPixelBufferPoolGetPixelBufferAttributes(_:))

The attributes of pixel buffers which the system creates using the pool you specify.

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

Returns the Core Foundation type identifier of the pixel buffer pool type.

### Retaining and releasing pools

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

Retains the pixel buffer pool that you specify.

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

Releases a pixel buffer pool.

### Data types

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

A reference to a pixel buffer pool object.

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

The flags to pass to flush the pool.

### Constants

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

The minimum number of buffers allowed in the pixel buffer pool.

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

The key you use to set the maximum allowable age for a buffer in the pixel buffer pool.

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

The key you use to set the auxiliary attributes dictionary.

### Notifications

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

A notification that the system posts if a buffer becomes available after it fails to create a pixel buffer with auxiliary attributes because it exceeded the threshold you specified.

## See Also

  [Core Video Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html#//apple_ref/doc/uid/TP40001536)



---

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)