---
title: "CMSampleBufferGetDuration(_:)"
framework: coremedia
role: symbol
role_heading: Function
path: "coremedia/cmsamplebuffergetduration(_:)"
---

# CMSampleBufferGetDuration(_:)

Returns the total duration of a sample buffer.

## Declaration

```swift
func CMSampleBufferGetDuration(_ sbuf: CMSampleBuffer) -> CMTime
```

## Parameters

- `sbuf`: The CMSampleBuffer being interrogated .

## Return Value

Return Value The duration of the CMSampleBuffer or kCMTimeInvalid if there is an error.

## Discussion

Discussion If the buffer contains out-of-presentation-order samples, any gaps in the presentation timeline aren’t represented in the returned duration. The returned duration is the sum of all the individual sample durations.

## See Also

### Inspecting Duration and Timing

- [CMSampleBufferGetDecodeTimeStamp(_:)](coremedia/cmsamplebuffergetdecodetimestamp(_:).md)
- [CMSampleBufferGetPresentationTimeStamp(_:)](coremedia/cmsamplebuffergetpresentationtimestamp(_:).md)
- [CMSampleBufferGetOutputDuration(_:)](coremedia/cmsamplebuffergetoutputduration(_:).md)
- [CMSampleBufferGetOutputDecodeTimeStamp(_:)](coremedia/cmsamplebuffergetoutputdecodetimestamp(_:).md)
- [CMSampleBufferGetOutputPresentationTimeStamp(_:)](coremedia/cmsamplebuffergetoutputpresentationtimestamp(_:).md)
- [CMSampleBufferSetOutputPresentationTimeStamp(_:newValue:)](coremedia/cmsamplebuffersetoutputpresentationtimestamp(_:newvalue:).md)
- [CMSampleBufferGetSampleTimingInfo(_:at:timingInfoOut:)](coremedia/cmsamplebuffergetsampletiminginfo(_:at:timinginfoout:).md)
- [CMSampleBufferGetSampleTimingInfoArray(_:entryCount:arrayToFill:entriesNeededOut:)](coremedia/cmsamplebuffergetsampletiminginfoarray(_:entrycount:arraytofill:entriesneededout:).md)
- [CMSampleBufferGetOutputSampleTimingInfoArray(_:entryCount:arrayToFill:entriesNeededOut:)](coremedia/cmsamplebuffergetoutputsampletiminginfoarray(_:entrycount:arraytofill:entriesneededout:).md)
