One Logo Pool Ball
CoreMedia · IOS API REFERENCE

CMSampleBufferAttachmentKeyDefinitions

enum · iOS 27.0+ · SDK 27.1

enum CMSampleBufferAttachmentKeyDefinitions

A namespace for sample buffer attachment keys.

Members (20)

get · iOS 27.0+

displayEmptyMediaImmediately

TypeScript
static get displayEmptyMediaImmediately(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let displayEmptyMediaImmediately: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates that the empty marker should be dequeued immediately regardless of its timestamp. Marker sample buffers with this attachment in addition to ``emptyMedia`` are used to tell that the empty sample buffer should be dequeued immediately regardless of its timestamp. This attachment should only be used with sample buffers with the ``emptyMedia`` attachment. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

permanentEmptyMedia

TypeScript
static get permanentEmptyMedia(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let permanentEmptyMedia: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Marks the end of the sequence of samples. Marker sample buffers with this attachment in addition to ``emptyMedia`` are used to indicate that no further samples are expected. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

emptyMedia

TypeScript
static get emptyMedia(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let emptyMedia: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Marks an intentionally empty interval in the sequence of samples. The sample buffer’s output presentation timestamp indicates when the empty interval begins. Marker sample buffers with this attachment are used to announce the arrival of empty edits. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

forceKeyFrame

TypeScript
static get forceKeyFrame(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let forceKeyFrame: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates that the current or next video sample buffer should be forced to be encoded as a key frame. If this attachment is `true` on a sample buffer with a video frame, that video frame will be forced to become a key frame. If the sample buffer for which this is `true` does not have a valid video frame, the next sample buffer processed that contains a valid video frame will be encoded as a key frame. The getter returns the default value of false if this attachment is not present. Unless the origin and destination of a sample buffer is known, the general recommended practice is to synthesize an empty sample buffer with this attachment alone and insert it into the sample buffer stream ahead of the concrete sample buffer rather than setting this attachment on the concrete sample buffer itself.

get · iOS 27.0+

resumeOutput

TypeScript
static get resumeOutput(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let resumeOutput: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

If present, indicates that output should be resumed following a discontinuity. This attachment is used at run time to request that a decode pipeline resume producing output after a discontinuity announced using the ``kCMSampleBufferConduitNotification_InhibitOutputUntil`` notification. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

transitionID

TypeScript
static get transitionID(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldNotPropagate, number>
Swift declaration
static let transitionID: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldNotPropagate, Int>

Marks a transition from one source of buffers to another. During gapless playback of a list of songs, this attachment marks the first buffer from the next song. If this attachment is on a buffer containing no samples, the first following buffer that contains samples is the buffer that contains the first samples from the next song. This transition identifier should be unique within a playlist, so each transition in a playlist is uniquely identifiable. A counter that increments with each transition is a simple example.

get · iOS 27.0+

speedMultiplier

TypeScript
static get speedMultiplier(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, number>
Swift declaration
static let speedMultiplier: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Float>

The factor by which the sample buffer’s presentation should be accelerated. For normal playback the speed multiplier would be 1.0 (which is the default value returned by getter if this attachment is not present); for double-speed playback the speed multiplier would be 2.0, which would halve the output duration. Speed-multiplication factors take effect after trimming; see ``CMReadySampleBuffer/outputDuration``. Note that this attachment principally provides information about the duration-stretching effect: by default, it should be implemented by rate conversion, but other attachments may specify richer stretching operations—for example, scaling without pitch shift, or pitch shift without changing duration. Sequences of speed-multiplied sample buffers should have explicit time stamps to clarify when each should be output (see ``CMReadySampleBuffer/outputPresentationTimeStamp``).

get · iOS 27.0+

trimDurationAtEnd

TypeScript
static get trimDurationAtEnd(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMTime>
Swift declaration
static let trimDurationAtEnd: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMTime>

The duration that should be removed at the end of the sample buffer, after decoding. The getter returns the default value of ``CMTime/zero`` (nothing removed) if this attachment is not present.

get · iOS 27.0+

drainAfterDecoding

TypeScript
static get drainAfterDecoding(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let drainAfterDecoding: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates whether the sample buffer should be drained after decoding. This attachment is used at run time to indicate that a sample precedes a break in decode sequence and that it is appropriate to drain the decoder after decoding this sample. This attachment is not written to media files. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

droppedFrameReason

TypeScript
static get droppedFrameReason(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMDroppedFrameReason>
Swift declaration
static let droppedFrameReason: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMDroppedFrameReason>

Indicates the reason the current video frame was dropped. Sample buffers with this attachment contain no image or data buffer. They mark a dropped video frame. This attachment identifies the reason the frame was dropped.

get · iOS 27.0+

trimDurationAtStart

TypeScript
static get trimDurationAtStart(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMTime>
Swift declaration
static let trimDurationAtStart: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMTime>

The duration that should be removed at the beginning of the sample buffer, after decoding. The getter returns the default value of ``CMTime/zero`` (nothing removed) if this attachment is not present. In cases where all the output after decoding the sample buffer is to be discarded (for example, the samples are only being decoded to prime the decoder) the usual convention is to set ``trimDurationAtStart`` to the whole duration and not to set a ``trimDurationAtEnd`` attachment.

get · iOS 27.0+

cameraIntrinsicMatrix

TypeScript
static get cameraIntrinsicMatrix(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMCameraIntrinsicMatrix>
Swift declaration
static let cameraIntrinsicMatrix: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMCameraIntrinsicMatrix>

Provides the 3x3 camera intrinsic matrix applied to the current sample buffer.

get · iOS 27.0+

gradualDecoderRefresh

TypeScript
static get gradualDecoderRefresh(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, number>
Swift declaration
static let gradualDecoderRefresh: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Int16>

Indicates the decoder refresh count. Sample buffers with this attachment may be used to identify the audio decoder refresh count.

get · iOS 27.0+

droppedFrameReasonInfo

TypeScript
static get droppedFrameReasonInfo(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMDroppedFrameReason_Info>
Swift declaration
static let droppedFrameReasonInfo: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMDroppedFrameReason.Info>

Indicates additional information regarding the dropped video frame. Sample buffers with this attachment contain no image or data buffer. They mark a dropped video frame. If present, this attachment provides additional information about the reason described by the ``droppedFrameReason`` key.

get · iOS 27.0+

endsPreviousSampleDuration

TypeScript
static get endsPreviousSampleDuration(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let endsPreviousSampleDuration: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates that sample buffer’s decode timestamp may be used to define the previous sample buffer’s duration. Marker sample buffers with this attachment may be used in situations where sample buffers are transmitted before their duration is known. In such situations, normally the recipient may use each sample buffer’s timestamp to calculate the duration of the previous sample buffer. The marker sample buffer with this attachment is sent to provide the timestamp for calculating the final sample buffer’s duration. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

resetDecoderBeforeDecoding

TypeScript
static get resetDecoderBeforeDecoding(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let resetDecoderBeforeDecoding: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates whether the sample buffer should be reset before decoding. This attachment is used at run time to indicate that a sample follows a break in decode sequence and that it is appropriate to reset the decoder before decoding this sample. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

postNotificationWhenConsumed

TypeScript
static get postNotificationWhenConsumed(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMCustomNotificationInfo>
Swift declaration
static let postNotificationWhenConsumed: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMCustomNotificationInfo>

Indicates that decode pipelines should post a notification when consuming the sample buffer. This attachment is used at run time to request that a decode pipeline post ``kCMSampleBufferConsumerNotification_BufferConsumed`` notification when this sample buffer is consumed. The value for this key is used as the userInfo dictionary in the notification.

get · iOS 27.0+

fillDiscontinuitiesWithSilence

TypeScript
static get fillDiscontinuitiesWithSilence(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let fillDiscontinuitiesWithSilence: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Fill the difference between discontiguous sample buffers with silence. If a sample buffer enters a buffer queue and the presentation time stamp between the previous buffer and the buffer with this attachment are discontiguous, handle the discontinuity by generating silence for the time difference. The getter returns the default value of false if this attachment is not present.

get · iOS 27.0+

stillImageLensStabilizationInfo

TypeScript
static get stillImageLensStabilizationInfo(): _CoreVideo_CVAttachmentKeyDefinition<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, CMStillImageLensStabilization>
Swift declaration
static let stillImageLensStabilizationInfo: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMStillImageLensStabilization>

Indicates information about the lens stabilization applied to the current still image buffer. Sample buffers that have been captured with a lens stabilization module may have this attachment. Which provides information about the stabilization status during the capture. This key will not be present in sample buffers coming from cameras without a lens stabilization module.

get · iOS 27.0+

reverse

TypeScript
static get reverse(): _CoreVideo_CVAttachmentKeyDefinitionWithDefault<_CoreVideo_CVAttachmentModePreferenceShouldPropagate, boolean>
Swift declaration
static let reverse: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>

Indicates that the decoded contents of the sample buffer should be reversed. If this attachment is not present, the sample buffer should be played forwards as usual. Reversal occurs after trimming and speed multipliers. The getter returns the default value of false if this attachment is not present.

Skipped declarations

No declarations were skipped in this snapshot.

All CoreMedia types →