<!--
{
  "documentType" : "article",
  "framework" : "CoreMedia",
  "identifier" : "/documentation/CoreMedia/buffer-trigger-conditions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Buffer Trigger Conditions"
}
-->

# Buffer Trigger Conditions

The trigger conditions the framework supports.

## Topics

### Constants

[`var kCMBufferQueueTrigger_WhenDurationBecomesLessThan: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDurationBecomesLessThan)

Trigger fires when queue duration becomes less than the specified duration.

[`var kCMBufferQueueTrigger_WhenDurationBecomesLessThanOrEqualTo: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDurationBecomesLessThanOrEqualTo)

Trigger fires when queue duration becomes less than or equal to the specified duration.

[`var kCMBufferQueueTrigger_WhenDurationBecomesGreaterThan: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDurationBecomesGreaterThan)

Trigger fires when queue duration becomes greater than the specified duration.

[`var kCMBufferQueueTrigger_WhenDurationBecomesGreaterThanOrEqualTo: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDurationBecomesGreaterThanOrEqualTo)

Trigger fires when queue duration becomes greater than or equal to the specified duration.

[`var kCMBufferQueueTrigger_WhenMinPresentationTimeStampChanges: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenMinPresentationTimeStampChanges)

Trigger fires when the minimum presentation timestamp changes (triggerDuration is ignored).

[`var kCMBufferQueueTrigger_WhenMaxPresentationTimeStampChanges: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenMaxPresentationTimeStampChanges)

Trigger fires when the maximum presentation timestamp changes (triggerDuration is ignored).

[`var kCMBufferQueueTrigger_WhenDataBecomesReady: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDataBecomesReady)

Trigger fires when next dequeueable buffer becomes ready (that is, [`CMBufferQueueDequeueIfDataReady(_:)`](/documentation/CoreMedia/CMBufferQueueDequeueIfDataReady(_:)) will now succeed).  (triggerDuration is ignored.)

[`var kCMBufferQueueTrigger_WhenEndOfDataReached: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenEndOfDataReached)

Trigger fires when CMBufferQueueIsAtEndOfData’s condition becomes true.  (triggerDuration is ignored.)

[`var kCMBufferQueueTrigger_WhenReset: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenReset)

Trigger fires when CMBufferQueueReset called.  (triggerDuration is ignored.)

[`var kCMBufferQueueTrigger_WhenBufferCountBecomesLessThan: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenBufferCountBecomesLessThan)

Trigger fires when buffer count becomes less than the specified threshold number.

[`var kCMBufferQueueTrigger_WhenBufferCountBecomesGreaterThan: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenBufferCountBecomesGreaterThan)

Trigger fires when buffer count becomes > the specified threshold number.

[`var kCMBufferQueueTrigger_WhenDurationBecomesGreaterThanOrEqualToAndBufferCountBecomesGreaterThan: CMBufferQueueTriggerCondition`](/documentation/CoreMedia/kCMBufferQueueTrigger_WhenDurationBecomesGreaterThanOrEqualToAndBufferCountBecomesGreaterThan)



---

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)