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.