One Logo Pool Ball
CoreMedia · IOS API REFERENCE

CMSampleBuffer.SampleAttachments

struct · iOS 26.0+ · SDK 27.1

struct SampleAttachments

Attachments applicable to each sample within a sample buffer. Each property of this struct is represented as a key in the ``dictionaryRepresentation``.

Members (33)

get · iOS 26.0+

audioIndependentSampleDecoderRefreshCount

TypeScript
get audioIndependentSampleDecoderRefreshCount(): (number) | null
Swift declaration
var audioIndependentSampleDecoderRefreshCount: Int? { get set }

Only present if the audio sample is an independent frame or immediate playout frame. Zero indicates an Immediate Playout Frame. Non-zero indicates an Independent Frame.

set · iOS 26.0+

audioIndependentSampleDecoderRefreshCount

TypeScript
set audioIndependentSampleDecoderRefreshCount(value: (number) | null)
Swift declaration
var audioIndependentSampleDecoderRefreshCount: Int? { get set }

Only present if the audio sample is an independent frame or immediate playout frame. Zero indicates an Immediate Playout Frame. Non-zero indicates an Independent Frame.

get · iOS 26.0+

hevcSyncSampleNALUnitType

TypeScript
get hevcSyncSampleNALUnitType(): (number) | null
Swift declaration
var hevcSyncSampleNALUnitType: Int? { get set }

Indicates sync sample NAL unit type. Corresponds to 'sync' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.4 Sync sample sample grouping.

set · iOS 26.0+

hevcSyncSampleNALUnitType

TypeScript
set hevcSyncSampleNALUnitType(value: (number) | null)
Swift declaration
var hevcSyncSampleNALUnitType: Int? { get set }

Indicates sync sample NAL unit type. Corresponds to 'sync' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.4 Sync sample sample grouping.

get · iOS 26.0+

doNotDisplay

TypeScript
get doNotDisplay(): boolean
Swift declaration
var doNotDisplay: Bool { get set }

Indicates whether the sample should be decoded but not displayed. Use this attachment at run time to request this behavior from a display pipeline such as the ``AVSampleBufferDisplayLayer`` class. This attachment is not written to media files.

set · iOS 26.0+

doNotDisplay

TypeScript
set doNotDisplay(value: boolean)
Swift declaration
var doNotDisplay: Bool { get set }

Indicates whether the sample should be decoded but not displayed. Use this attachment at run time to request this behavior from a display pipeline such as the ``AVSampleBufferDisplayLayer`` class. This attachment is not written to media files.

get · iOS 26.0+

isPartialSync

TypeScript
get isPartialSync(): boolean
Swift declaration
var isPartialSync: Bool { get set }

Indicates whether the sample is a partial sync sample. A partial sync sample can be decoded without requiring any previous samples to have been decoded. Samples following two consecutive partial sync samples also do not require samples prior to the pair to have been decoded. To treat a sample as a partial sync sample, set to true for both this key and the ``notSync`` key. This attachment is read from and written to media files.

set · iOS 26.0+

isPartialSync

TypeScript
set isPartialSync(value: boolean)
Swift declaration
var isPartialSync: Bool { get set }

Indicates whether the sample is a partial sync sample. A partial sync sample can be decoded without requiring any previous samples to have been decoded. Samples following two consecutive partial sync samples also do not require samples prior to the pair to have been decoded. To treat a sample as a partial sync sample, set to true for both this key and the ``notSync`` key. This attachment is read from and written to media files.

subscript · iOS 26.0+

subscript

TypeScript
subscript(key: string): (SDKHandle) | null
Swift declaration
subscript(rawAttachment key: String) -> (any Sendable)? { get set }

Get or set a custom attachment value. The value must be a plist type.

get · iOS 26.0+

dependsOnOthers

TypeScript
get dependsOnOthers(): (boolean) | null
Swift declaration
var dependsOnOthers: Bool? { get set }

Indicates whether the sample depends on other samples for decoding. This key has no default value. If this key is not present, dependency information for the sample is unknown. A value of false indicates that the sample does not depend on other samples (for example, an I frame). A value of true indicates that the sample does depend on other samples (for example, a P or B frame). This attachment is read from and written to media files.

set · iOS 26.0+

dependsOnOthers

TypeScript
set dependsOnOthers(value: (boolean) | null)
Swift declaration
var dependsOnOthers: Bool? { get set }

Indicates whether the sample depends on other samples for decoding. This key has no default value. If this key is not present, dependency information for the sample is unknown. A value of false indicates that the sample does not depend on other samples (for example, an I frame). A value of true indicates that the sample does depend on other samples (for example, a P or B frame). This attachment is read from and written to media files.

get · iOS 26.0+

hevcTemporalInfo

TypeScript
get hevcTemporalInfo(): (CMSampleBuffer_HEVCTemporalInfo) | null
Swift declaration
var hevcTemporalInfo: CMSampleBuffer.HEVCTemporalInfo? { get set }

Indicates a video frame’s level within a hierarchical frame dependency structure. When present, the temporal level attachments among a group of video frames provide information about where inter-frame dependencies may and may not exist. This attachment is read from and written to media files.

set · iOS 26.0+

hevcTemporalInfo

TypeScript
set hevcTemporalInfo(value: (CMSampleBuffer_HEVCTemporalInfo) | null)
Swift declaration
var hevcTemporalInfo: CMSampleBuffer.HEVCTemporalInfo? { get set }

Indicates a video frame’s level within a hierarchical frame dependency structure. When present, the temporal level attachments among a group of video frames provide information about where inter-frame dependencies may and may not exist. This attachment is read from and written to media files.

get · iOS 26.0+

displayImmediately

TypeScript
get displayImmediately(): boolean
Swift declaration
var displayImmediately: Bool { get set }

Indicates whether the sample should be displayed immediately. If this key is present, the sample should be displayed as soon as possible rather than according to its presentation timestamp. Use this attachment at run time to request this behavior from a display pipeline such as the ``AVSampleBufferDisplayLayer`` class. This attachment is not written to media files.

set · iOS 26.0+

displayImmediately

TypeScript
set displayImmediately(value: boolean)
Swift declaration
var displayImmediately: Bool { get set }

Indicates whether the sample should be displayed immediately. If this key is present, the sample should be displayed as soon as possible rather than according to its presentation timestamp. Use this attachment at run time to request this behavior from a display pipeline such as the ``AVSampleBufferDisplayLayer`` class. This attachment is not written to media files.

get · iOS 26.0+

hasRedundantCoding

TypeScript
get hasRedundantCoding(): (boolean) | null
Swift declaration
var hasRedundantCoding: Bool? { get set }

Indicates whether the sample has redundant coding. This key has no default value. If this key is not present, redundant coding information for the sample is unknown.

set · iOS 26.0+

hasRedundantCoding

TypeScript
set hasRedundantCoding(value: (boolean) | null)
Swift declaration
var hasRedundantCoding: Bool? { get set }

Indicates whether the sample has redundant coding. This key has no default value. If this key is not present, redundant coding information for the sample is unknown.

get · iOS 26.0+

isDependedOnByOthers

TypeScript
get isDependedOnByOthers(): (boolean) | null
Swift declaration
var isDependedOnByOthers: Bool? { get set }

Indicates whether other samples depend on this sample for decoding. This key has no default value. If this key is not present, dependency information for the sample is unknown. If this key is present and its value is false, the frame is considered droppable. This attachment is read from and written to media files.

set · iOS 26.0+

isDependedOnByOthers

TypeScript
set isDependedOnByOthers(value: (boolean) | null)
Swift declaration
var isDependedOnByOthers: Bool? { get set }

Indicates whether other samples depend on this sample for decoding. This key has no default value. If this key is not present, dependency information for the sample is unknown. If this key is present and its value is false, the frame is considered droppable. This attachment is read from and written to media files.

get · iOS 26.0+

hdr10PlusPerFrameData

TypeScript
get hdr10PlusPerFrameData(): (ArrayBuffer) | null
Swift declaration
var hdr10PlusPerFrameData: Data? { get set }

HDR10+ per frame metadata. The value should contain HDR10+ metadata within an User Data Registered ITU-T T-35 SEI message (see ISO/IEC 23008-2-2020 section D.3.6) as little endian in the Data. This attachment will override any HDR10+ metadata stored within the compressed data. The data should start with the field `itu_t_t35_country_code` with the value `0xb5`.

set · iOS 26.0+

hdr10PlusPerFrameData

TypeScript
set hdr10PlusPerFrameData(value: (ArrayBuffer) | null)
Swift declaration
var hdr10PlusPerFrameData: Data? { get set }

HDR10+ per frame metadata. The value should contain HDR10+ metadata within an User Data Registered ITU-T T-35 SEI message (see ISO/IEC 23008-2-2020 section D.3.6) as little endian in the Data. This attachment will override any HDR10+ metadata stored within the compressed data. The data should start with the field `itu_t_t35_country_code` with the value `0xb5`.

get · iOS 26.0+

dictionaryRepresentation

TypeScript
get dictionaryRepresentation(): Record<string, SDKHandle>
Swift declaration
var dictionaryRepresentation: [String : any Sendable] { get }

Dictionary representation of the sample attachments.

get · iOS 26.0+

earlierDisplayTimesAllowed

TypeScript
get earlierDisplayTimesAllowed(): (boolean) | null
Swift declaration
var earlierDisplayTimesAllowed: Bool? { get set }

Indicates whether later samples may have earlier display times. This key has no default value. If this key is not present, this information for the sample is unknown.

set · iOS 26.0+

earlierDisplayTimesAllowed

TypeScript
set earlierDisplayTimesAllowed(value: (boolean) | null)
Swift declaration
var earlierDisplayTimesAllowed: Bool? { get set }

Indicates whether later samples may have earlier display times. This key has no default value. If this key is not present, this information for the sample is unknown.

get · iOS 26.0+

hevcTemporalSubLayerAccess

TypeScript
get hevcTemporalSubLayerAccess(): boolean
Swift declaration
var hevcTemporalSubLayerAccess: Bool { get set }

Indicates a temporal sublayer access grouping. Corresponds to 'tsas' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.6 Temporal sub-layer access sample grouping.

set · iOS 26.0+

hevcTemporalSubLayerAccess

TypeScript
set hevcTemporalSubLayerAccess(value: boolean)
Swift declaration
var hevcTemporalSubLayerAccess: Bool { get set }

Indicates a temporal sublayer access grouping. Corresponds to 'tsas' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.6 Temporal sub-layer access sample grouping.

get · iOS 26.0+

cryptorSubsampleAuxiliaryData

TypeScript
get cryptorSubsampleAuxiliaryData(): (ArrayBuffer) | null
Swift declaration
var cryptorSubsampleAuxiliaryData: Data? { get set }

Describes the ranges of protected and unprotected data within a protected sample buffer. The value should contain one or more `BytesOfClearData/BytesOfProtectedData` pairs as appears in the 'senc' box (see ISO/IEC 23001-7 section 7.2.2). The `BytesOfClearData` and the `BytesOfProtectedData` fields are 32-bit integers. Both are native endian in the Data. This attachment is not present if the CMSampleBuffer contains unprotected content.

set · iOS 26.0+

cryptorSubsampleAuxiliaryData

TypeScript
set cryptorSubsampleAuxiliaryData(value: (ArrayBuffer) | null)
Swift declaration
var cryptorSubsampleAuxiliaryData: Data? { get set }

Describes the ranges of protected and unprotected data within a protected sample buffer. The value should contain one or more `BytesOfClearData/BytesOfProtectedData` pairs as appears in the 'senc' box (see ISO/IEC 23001-7 section 7.2.2). The `BytesOfClearData` and the `BytesOfProtectedData` fields are 32-bit integers. Both are native endian in the Data. This attachment is not present if the CMSampleBuffer contains unprotected content.

get · iOS 26.0+

hevcStepwiseTemporalSubLayerAccess

TypeScript
get hevcStepwiseTemporalSubLayerAccess(): boolean
Swift declaration
var hevcStepwiseTemporalSubLayerAccess: Bool { get set }

Indicates a step-wise temporal sublayer access (STSA) sample grouping. Corresponds to 'stsa' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.7 Step-wise temporal layer access sample grouping.

set · iOS 26.0+

hevcStepwiseTemporalSubLayerAccess

TypeScript
set hevcStepwiseTemporalSubLayerAccess(value: boolean)
Swift declaration
var hevcStepwiseTemporalSubLayerAccess: Bool { get set }

Indicates a step-wise temporal sublayer access (STSA) sample grouping. Corresponds to 'stsa' sample group. This attachment is read from and written to media files as specified in ISO/IEC 14496-15 section 8.4.7 Step-wise temporal layer access sample grouping.

get · iOS 26.0+

isNotSync

TypeScript
get isNotSync(): boolean
Swift declaration
var isNotSync: Bool { get set }

Indicates whether the sample is a sync sample. Set the value to true for samples which should not be treated as sync samples. A sync sample, also known as a key frame or IDR (Instantaneous Decoding Refresh), can be decoded without requiring any previous samples to have been decoded. Samples following a sync sample also do not require samples prior to the sync sample to have been decoded. Samples are assumed to be sync samples by default. This attachment is read from and written to media files.

set · iOS 26.0+

isNotSync

TypeScript
set isNotSync(value: boolean)
Swift declaration
var isNotSync: Bool { get set }

Indicates whether the sample is a sync sample. Set the value to true for samples which should not be treated as sync samples. A sync sample, also known as a key frame or IDR (Instantaneous Decoding Refresh), can be decoded without requiring any previous samples to have been decoded. Samples following a sync sample also do not require samples prior to the sync sample to have been decoded. Samples are assumed to be sync samples by default. This attachment is read from and written to media files.

init · iOS 26.0+

init

TypeScript
static init(dictionaryRepresentation?: Record<string, SDKHandle>): CMSampleBuffer_SampleAttachments
Swift declaration
init(_ dictionaryRepresentation: [String : any Sendable] = [:])

Skipped declarations

No declarations were skipped in this snapshot.

All CoreMedia types →