---
title: CMSampleBuffer
framework: coremedia
role: symbol
role_heading: Class
path: coremedia/cmsamplebuffer
---

# CMSampleBuffer

A reference to a buffer of media data.

## Declaration

```swift
class CMSampleBuffer
```

## Overview

Overview A sample buffer is a Core Foundation object that contains zero or more media samples of a particular type (audio, video, muxed, and so on).

## Topics

### Determining Readiness

- [dataReadiness](coremedia/cmsamplebuffer/datareadiness-swift.property.md)
- [setDataReadiness(_:)](coremedia/cmsamplebuffer/setdatareadiness(_:).md)
- [CMSampleBuffer.DataReadiness](coremedia/cmsamplebuffer/datareadiness-swift.enum.md)
- [makeDataReady()](coremedia/cmsamplebuffer/makedataready().md)
- [trackDataReadiness(_:)](coremedia/cmsamplebuffer/trackdatareadiness(_:).md)

### Invalidating Sample Buffers

- [isValid](coremedia/cmsamplebuffer/isvalid.md)
- [setInvalidateHandler(_:)](coremedia/cmsamplebuffer/setinvalidatehandler(_:).md)
- [invalidate()](coremedia/cmsamplebuffer/invalidate().md)

### Inspecting Size Information

- [numSamples](coremedia/cmsamplebuffer/numsamples.md)
- [sampleSizes()](coremedia/cmsamplebuffer/samplesizes().md)
- [sampleSize(at:)](coremedia/cmsamplebuffer/samplesize(at:).md)
- [totalSampleSize](coremedia/cmsamplebuffer/totalsamplesize.md)

### Inspecting Duration and Timing

- [duration](coremedia/cmsamplebuffer/duration.md)
- [decodeTimeStamp](coremedia/cmsamplebuffer/decodetimestamp.md)
- [presentationTimeStamp](coremedia/cmsamplebuffer/presentationtimestamp.md)
- [outputDuration](coremedia/cmsamplebuffer/outputduration.md)
- [outputDecodeTimeStamp](coremedia/cmsamplebuffer/outputdecodetimestamp.md)
- [outputPresentationTimeStamp](coremedia/cmsamplebuffer/outputpresentationtimestamp.md)
- [setOutputPresentationTimeStamp(_:)](coremedia/cmsamplebuffer/setoutputpresentationtimestamp(_:).md)
- [sampleTimingInfos()](coremedia/cmsamplebuffer/sampletiminginfos().md)
- [sampleTimingInfo(at:)](coremedia/cmsamplebuffer/sampletiminginfo(at:).md)
- [outputSampleTimingInfos()](coremedia/cmsamplebuffer/outputsampletiminginfos().md)

### Accessing the Format Description

- [formatDescription](coremedia/cmsamplebuffer/formatdescription.md)

### Modifying Sample Buffers

- [dataBuffer](coremedia/cmsamplebuffer/databuffer.md)
- [setDataBuffer(_:)](coremedia/cmsamplebuffer/setdatabuffer(_:).md)
- [imageBuffer](coremedia/cmsamplebuffer/imagebuffer.md)
- [withAudioBufferList(blockBufferMemoryAllocator:flags:body:)](coremedia/cmsamplebuffer/withaudiobufferlist(blockbuffermemoryallocator:flags:body:).md)
- [setDataBuffer(fromAudioBufferList:blockBufferMemoryAllocator:flags:)](coremedia/cmsamplebuffer/setdatabuffer(fromaudiobufferlist:blockbuffermemoryallocator:flags:).md)
- [copyPCMData(fromRange:into:)](coremedia/cmsamplebuffer/copypcmdata(fromrange:into:).md)
- [audioStreamPacketDescriptions()](coremedia/cmsamplebuffer/audiostreampacketdescriptions().md)
- [withUnsafeAudioStreamPacketDescriptions(_:)](coremedia/cmsamplebuffer/withunsafeaudiostreampacketdescriptions(_:).md)
- [singleSampleBuffers()](coremedia/cmsamplebuffer/singlesamplebuffers().md)
- [CMSampleBuffer.SingleSampleBuffers](coremedia/cmsamplebuffer/singlesamplebuffers.md)

### Managing Attachments

- [CMSampleBuffer.AttachmentKey](coremedia/cmsamplebuffer/attachmentkey.md)
- [sampleAttachments](coremedia/cmsamplebuffer/sampleattachments-swift.property.md)
- [CMSampleBuffer.SampleAttachmentsArray](coremedia/cmsamplebuffer/sampleattachmentsarray.md)
- [CMSampleBuffer.PerSampleAttachmentsDictionary](coremedia/cmsamplebuffer/persampleattachmentsdictionary.md)

### Accessing the Type Identifier

- [typeID](coremedia/cmsamplebuffer/typeid.md)

### Accessing Tagged Buffers

- [taggedBuffers](coremedia/cmsamplebuffer/taggedbuffers.md)

### Constants

- [CMSampleBuffer.Error](coremedia/cmsamplebuffer/error.md)
- [CMSampleBuffer.Flags](coremedia/cmsamplebuffer/flags.md)
- [CMSampleBuffer.NotificationKey](coremedia/cmsamplebuffer/notificationkey.md)

### Notifications

- [dataBecameReady](coremedia/cmsamplebuffer/databecameready.md)
- [dataFailed](coremedia/cmsamplebuffer/datafailed.md)

### Protocols

- [CMSampleBuffer.Content](coremedia/cmsamplebuffer/content.md)
- [CMSampleBuffer.ContentWithFormatDescription](coremedia/cmsamplebuffer/contentwithformatdescription.md)
- [CMSampleBuffer.MultiSampleContent](coremedia/cmsamplebuffer/multisamplecontent.md)

### Structures

- [CMSampleBuffer.HEVCTemporalInfo](coremedia/cmsamplebuffer/hevctemporalinfo.md)
- [CMSampleBuffer.SampleAttachments](coremedia/cmsamplebuffer/sampleattachments-swift.struct.md)
- [CMSampleBuffer.SampleProperties](coremedia/cmsamplebuffer/sampleproperties.md)
- [CMSampleBuffer.SamplePropertiesCollection](coremedia/cmsamplebuffer/samplepropertiescollection.md)

### Initializers

- [init(referencing:)](coremedia/cmsamplebuffer/init(referencing:).md)

### Instance Properties

- [contentType](coremedia/cmsamplebuffer/contenttype-swift.property.md)

### Type Aliases

- [CMSampleBuffer.T](coremedia/cmsamplebuffer/t.md)

### Enumerations

- [CMSampleBuffer.ContentType](coremedia/cmsamplebuffer/contenttype-swift.enum.md)
- [CMSampleBuffer.DynamicContent](coremedia/cmsamplebuffer/dynamiccontent.md)
- [CMSampleBuffer.SizePerSample](coremedia/cmsamplebuffer/sizepersample.md)
- [CMSampleBuffer.TimingPerSample](coremedia/cmsamplebuffer/timingpersample.md)

## Relationships

### Conforms To

- [CMAttachmentBearerProtocol](coremedia/cmattachmentbearerprotocol.md)
- [Copyable](swift/copyable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)

## See Also

### Data Types

- [Sample Buffer Flags](coremedia/sample-buffer-flags.md)
- [CMSampleTimingInfo](coremedia/cmsampletiminginfo.md)
- [CMBuffer](coremedia/cmbuffer.md)
- [CMBufferGetSizeCallback](coremedia/cmbuffergetsizecallback.md)
- [CMItemIndex](coremedia/cmitemindex.md)
- [CMItemCount](coremedia/cmitemcount.md)
- [CMPersistentTrackID](coremedia/cmpersistenttrackid.md)
- [CMMuxedStreamType](coremedia/cmmuxedstreamtype.md)
