<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreMedia",
  "identifier" : "/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "Core Media"
    ],
    "preciseIdentifier" : "s:9CoreMedia38CMSampleBufferAttachmentKeyDefinitionsO"
  },
  "title" : "CMSampleBufferAttachmentKeyDefinitions"
}
-->

# CMSampleBufferAttachmentKeyDefinitions

A namespace for sample buffer attachment keys.

```
enum CMSampleBufferAttachmentKeyDefinitions
```

## Topics

### Type Properties

[`static let cameraIntrinsicMatrix: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMCameraIntrinsicMatrix>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/cameraIntrinsicMatrix)

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

[`static let displayEmptyMediaImmediately: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/displayEmptyMediaImmediately)

Indicates that the empty marker should be dequeued immediately regardless of its timestamp.

[`static let drainAfterDecoding: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/drainAfterDecoding)

Indicates whether the sample buffer should be drained after decoding.

[`static let droppedFrameReason: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMDroppedFrameReason>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/droppedFrameReason)

Indicates the reason the current video frame was dropped.

[`static let droppedFrameReasonInfo: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMDroppedFrameReason.Info>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/droppedFrameReasonInfo)

Indicates additional information regarding the dropped video frame.

[`static let emptyMedia: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/emptyMedia)

Marks an intentionally empty interval in the sequence of samples.

[`static let endsPreviousSampleDuration: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/endsPreviousSampleDuration)

Indicates that sample buffer’s decode timestamp may be used to define the previous sample buffer’s duration.

[`static let fillDiscontinuitiesWithSilence: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/fillDiscontinuitiesWithSilence)

Fill the difference between discontiguous sample buffers with silence.

[`static let forceKeyFrame: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/forceKeyFrame)

Indicates that the current or next video sample buffer should be forced to be encoded as a key frame.

[`static let gradualDecoderRefresh: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Int16>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/gradualDecoderRefresh)

Indicates the decoder refresh count.

[`static let permanentEmptyMedia: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/permanentEmptyMedia)

Marks the end of the sequence of samples.

[`static let postNotificationWhenConsumed: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMCustomNotificationInfo>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/postNotificationWhenConsumed)

Indicates that decode pipelines should post a notification when consuming the sample buffer.

[`static let resetDecoderBeforeDecoding: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/resetDecoderBeforeDecoding)

Indicates whether the sample buffer should be reset before decoding.

[`static let resumeOutput: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/resumeOutput)

If present, indicates that output should be resumed following a discontinuity.

[`static let reverse: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Bool>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/reverse)

Indicates that the decoded contents of the sample buffer should be reversed.

[`static let speedMultiplier: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, Float>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/speedMultiplier)

The factor by which the sample buffer’s presentation should be accelerated.

[`static let stillImageLensStabilizationInfo: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMStillImageLensStabilization>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/stillImageLensStabilizationInfo)

Indicates information about the lens stabilization applied to the current still image buffer.

[`static let transitionID: CVAttachmentKeyDefinition<CMSampleBufferAttachmentKeyDefinitions.ShouldNotPropagate, Int>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/transitionID)

Marks a transition from one source of buffers to another.

[`static let trimDurationAtEnd: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMTime>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/trimDurationAtEnd)

The duration that should be removed at the end of the sample buffer, after decoding.

[`static let trimDurationAtStart: CVAttachmentKeyDefinitionWithDefault<CMSampleBufferAttachmentKeyDefinitions.ShouldPropagate, CMTime>`](/documentation/CoreMedia/CMSampleBufferAttachmentKeyDefinitions/trimDurationAtStart)

The duration that should be removed at the beginning of the sample buffer, after decoding.

## Relationships

### Conforms To

[`CVAttachmentKeyDefinitions`](/documentation/CoreVideo/CVAttachmentKeyDefinitions)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)