---
title: CMReadOnlyDataBlockBuffer
framework: coremedia
role: symbol
role_heading: Structure
path: coremedia/cmreadonlydatablockbuffer
---

# CMReadOnlyDataBlockBuffer

A block buffer that provides read-only access to the a range of bytes.

## Declaration

```swift
struct CMReadOnlyDataBlockBuffer
```

## Overview

Overview Block buffer provides a contiguous range of data offsets (from 0 to count) across a possibly non-contiguous range of bytes. The byte range may contain memory blocks and buffer references. The bytes held by this buffer can not be modified. However, the composition of the byte range can be changed by appending other memory blocks or buffer references.

## Topics

### Structures

- [CMReadOnlyDataBlockBuffer.BlockRegion](coremedia/cmreadonlydatablockbuffer/blockregion.md)

### Operators

- [+(_:_:)](coremedia/cmreadonlydatablockbuffer/+(_:_:)-58lg4.md)
- [+(_:_:)](coremedia/cmreadonlydatablockbuffer/+(_:_:)-92jke.md)
- [+=(_:_:)](coremedia/cmreadonlydatablockbuffer/+=(_:_:)-67kx8.md)
- [+=(_:_:)](coremedia/cmreadonlydatablockbuffer/+=(_:_:)-7fm8e.md)

### Initializers

- [init(_:)](coremedia/cmreadonlydatablockbuffer/init(_:)-5fdm2.md)
- [init(_:)](coremedia/cmreadonlydatablockbuffer/init(_:)-80jym.md)
- [init(_:)](coremedia/cmreadonlydatablockbuffer/init(_:)-w7h3.md)
- [init(subBlockCapacity:)](coremedia/cmreadonlydatablockbuffer/init(subblockcapacity:).md)
- [init(unsafeBlockBuffer:)](coremedia/cmreadonlydatablockbuffer/init(unsafeblockbuffer:).md)

### Instance Properties

- [attachments](coremedia/cmreadonlydatablockbuffer/attachments-swift.property.md)
- [isContiguous](coremedia/cmreadonlydatablockbuffer/iscontiguous.md)

### Instance Methods

- [append(referenceOf:optimizeDepth:)](coremedia/cmreadonlydatablockbuffer/append(referenceof:optimizedepth:)-2x1ta.md)
- [append(referenceOf:optimizeDepth:)](coremedia/cmreadonlydatablockbuffer/append(referenceof:optimizedepth:)-5g65c.md)
- [withContiguousStorageIfAvailable(_:)](coremedia/cmreadonlydatablockbuffer/withcontiguousstorageifavailable(_:)-7tacg.md)
- [withUnsafeBlockBuffer(_:)](coremedia/cmreadonlydatablockbuffer/withunsafeblockbuffer(_:).md)

### Type Aliases

- [CMReadOnlyDataBlockBuffer.Attachments](coremedia/cmreadonlydatablockbuffer/attachments-swift.typealias.md)

### Default Implementations

- [Collection Implementations](coremedia/cmreadonlydatablockbuffer/collection-implementations.md)
- [DataProtocol Implementations](coremedia/cmreadonlydatablockbuffer/dataprotocol-implementations.md)
- [RandomAccessCollection Implementations](coremedia/cmreadonlydatablockbuffer/randomaccesscollection-implementations.md)
- [Sequence Implementations](coremedia/cmreadonlydatablockbuffer/sequence-implementations.md)

## Relationships

### Conforms To

- [BidirectionalCollection](swift/bidirectionalcollection.md)
- [CMSampleBuffer.Content](coremedia/cmsamplebuffer/content.md)
- [CMSampleBuffer.ContentWithFormatDescription](coremedia/cmsamplebuffer/contentwithformatdescription.md)
- [CMSampleBuffer.MultiSampleContent](coremedia/cmsamplebuffer/multisamplecontent.md)
- [Collection](swift/collection.md)
- [Copyable](swift/copyable.md)
- [DataProtocol](foundation/dataprotocol.md)
- [Escapable](swift/escapable.md)
- [RandomAccessCollection](swift/randomaccesscollection.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [Sequence](swift/sequence.md)

## See Also

### Sample Processing

- [CMSampleBuffer](coremedia/cmsamplebuffer-api.md)
- [CMBlockBuffer](coremedia/cmblockbuffer-api.md)
- [CMTaggedBufferGroup](coremedia/cmtaggedbuffergroup.md)
- [CMFormatDescription](coremedia/cmformatdescription-api.md)
- [CMAttachment](coremedia/cmattachment-api.md)
- [CMTaggedBuffer](coremedia/cmtaggedbuffer.md)
- [CMMutableDataBlockBuffer](coremedia/cmmutabledatablockbuffer.md)
- [CMReadySampleBuffer](coremedia/cmreadysamplebuffer.md)
- [CMSampleDataReference](coremedia/cmsampledatareference.md)
- [CMTaggedDynamicBuffer](coremedia/cmtaggeddynamicbuffer.md)
