---
title: CMTimebase
framework: coremedia
role: collectionGroup
role_heading: API Collection
path: coremedia/cmtimebase-api
---

# CMTimebase

A model of a timeline under application control.

## Overview

Overview A timebase represents a timeline that clients can control by setting the rate and time. Each timebase has either a host clock or a host timebase, and its rate is expressed relative to its host: When a timebase has rate 0.0, its time is fixed and doesn’t change as its host’s time changes. When a timebase has rate 1.0, its time increases one second as its host’s time increases by one second. When a timebase has rate 2.0, its time increases two seconds as its host’s time increases by one second. When a timebase has rate -1.0, its time decreases one second as its host’s time increases by one second. If a timebase has a host timebase, the host timebase’s rate is a factor in determining the timebase’s effective rate. In fact, a timebase’s effective rate is defined as the product of its rate, its host timebase’s rate, its host timebase’s host timebase’s rate, and so on up to the ultimate host clock. This is the rate at which the timebase’s time changes relative to the ultimate host clock.

## Topics

### Creating Timebases

- [CMTimebaseCreateWithSourceClock(allocator:sourceClock:timebaseOut:)](coremedia/cmtimebasecreatewithsourceclock(allocator:sourceclock:timebaseout:).md)
- [CMTimebaseCreateWithSourceTimebase(allocator:sourceTimebase:timebaseOut:)](coremedia/cmtimebasecreatewithsourcetimebase(allocator:sourcetimebase:timebaseout:).md)

### Copying Timebases

- [CMTimebaseCopySource(_:)](coremedia/cmtimebasecopysource(_:).md)
- [CMTimebaseCopySourceClock(_:)](coremedia/cmtimebasecopysourceclock(_:).md)
- [CMTimebaseCopySourceTimebase(_:)](coremedia/cmtimebasecopysourcetimebase(_:).md)
- [CMTimebaseCopyUltimateSourceClock(_:)](coremedia/cmtimebasecopyultimatesourceclock(_:).md)

### Getting and Setting Time

- [CMTimebaseGetTime(_:)](coremedia/cmtimebasegettime(_:).md)
- [CMTimebaseGetTimeWithTimeScale(_:timescale:method:)](coremedia/cmtimebasegettimewithtimescale(_:timescale:method:).md)
- [CMTimebaseGetTimeAndRate(_:timeOut:rateOut:)](coremedia/cmtimebasegettimeandrate(_:timeout:rateout:).md)
- [CMTimebaseSetTime(_:time:)](coremedia/cmtimebasesettime(_:time:).md)
- [CMTimebaseSetSourceClock(_:_:)](coremedia/cmtimebasesetsourceclock(_:_:).md)
- [CMTimebaseSetSourceTimebase(_:_:)](coremedia/cmtimebasesetsourcetimebase(_:_:).md)
- [CMTimebaseSetAnchorTime(_:timebaseTime:immediateSourceTime:)](coremedia/cmtimebasesetanchortime(_:timebasetime:immediatesourcetime:).md)

### Getting and Setting the Time Rate

- [CMTimebaseGetRate(_:)](coremedia/cmtimebasegetrate(_:).md)
- [CMTimebaseGetEffectiveRate(_:)](coremedia/cmtimebasegeteffectiverate(_:).md)
- [CMTimebaseSetRate(_:rate:)](coremedia/cmtimebasesetrate(_:rate:).md)
- [CMTimebaseSetRateAndAnchorTime(_:rate:anchorTime:immediateSourceTime:)](coremedia/cmtimebasesetrateandanchortime(_:rate:anchortime:immediatesourcetime:).md)

### Interacting with Timers

- [CMTimebaseAddTimer(_:timer:runloop:)](coremedia/cmtimebaseaddtimer(_:timer:runloop:).md)
- [CMTimebaseAddTimerDispatchSource(_:timerSource:)](coremedia/cmtimebaseaddtimerdispatchsource(_:timersource:).md)
- [CMTimebaseRemoveTimer(_:timer:)](coremedia/cmtimebaseremovetimer(_:timer:).md)
- [CMTimebaseRemoveTimerDispatchSource(_:timerSource:)](coremedia/cmtimebaseremovetimerdispatchsource(_:timersource:).md)
- [CMTimebaseSetTimerNextFireTime(_:timer:fireTime:flags:)](coremedia/cmtimebasesettimernextfiretime(_:timer:firetime:flags:).md)
- [CMTimebaseSetTimerToFireImmediately(_:timer:)](coremedia/cmtimebasesettimertofireimmediately(_:timer:).md)
- [CMTimebaseSetTimerDispatchSourceNextFireTime(_:timerSource:fireTime:flags:)](coremedia/cmtimebasesettimerdispatchsourcenextfiretime(_:timersource:firetime:flags:).md)
- [CMTimebaseSetTimerDispatchSourceToFireImmediately(_:timerSource:)](coremedia/cmtimebasesettimerdispatchsourcetofireimmediately(_:timersource:).md)

### Pausing Time Notifications

- [CMTimebaseNotificationBarrier(_:)](coremedia/cmtimebasenotificationbarrier(_:).md)

### Data Types

- [CMTimebase](coremedia/cmtimebase.md)
- [CMSync](coremedia/cmsync.md)
- [CMSyncProtocol](coremedia/cmsyncprotocol.md)

### Timebase Errors

- [kCMTimebaseError_MissingRequiredParameter](coremedia/kcmtimebaseerror_missingrequiredparameter.md)
- [kCMTimebaseError_InvalidParameter](coremedia/kcmtimebaseerror_invalidparameter.md)
- [kCMTimebaseError_AllocationFailed](coremedia/kcmtimebaseerror_allocationfailed.md)
- [kCMTimebaseError_TimerIntervalTooShort](coremedia/kcmtimebaseerror_timerintervaltooshort.md)
- [kCMTimebaseError_ReadOnly](coremedia/kcmtimebaseerror_readonly.md)

### Constants

- [CMTimebaseGetTypeID()](coremedia/cmtimebasegettypeid().md)

### Notifications

- [kCMTimebaseNotificationKey_EventTime](coremedia/kcmtimebasenotificationkey_eventtime.md)

### Deprecations

- [CMTimebaseSetRateAndAnchorTime(_:rate:anchorTime:immediateMasterTime:)](coremedia/cmtimebasesetrateandanchortime(_:rate:anchortime:immediatemastertime:).md)
- [CMTimebaseGetMasterTimebase(_:)](coremedia/cmtimebasegetmastertimebase(_:).md)
- [CMTimebaseGetMasterClock(_:)](coremedia/cmtimebasegetmasterclock(_:).md)
- [CMTimebaseGetMaster(_:)](coremedia/cmtimebasegetmaster(_:).md)
- [CMTimebaseGetUltimateMasterClock(_:)](coremedia/cmtimebasegetultimatemasterclock(_:).md)
- [CMTimebaseSetMasterClock(_:_:)](coremedia/cmtimebasesetmasterclock(_:_:).md)
- [CMTimebaseSetMasterTimebase(_:_:)](coremedia/cmtimebasesetmastertimebase(_:_:).md)
- [CMTimebaseSetAnchorTime(_:timebaseTime:immediateMasterTime:)](coremedia/cmtimebasesetanchortime(_:timebasetime:immediatemastertime:).md)
- [CMTimebaseCopyMaster(_:)](coremedia/cmtimebasecopymaster(_:).md)
- [CMTimebaseCopyMasterClock(_:)](coremedia/cmtimebasecopymasterclock(_:).md)
- [CMTimebaseCopyMasterTimebase(_:)](coremedia/cmtimebasecopymastertimebase(_:).md)
- [CMTimebaseCopyUltimateMasterClock(_:)](coremedia/cmtimebasecopyultimatemasterclock(_:).md)
- [CMTimebaseCreateWithMasterClock(allocator:masterClock:timebaseOut:)](coremedia/cmtimebasecreatewithmasterclock(allocator:masterclock:timebaseout:).md)
- [CMTimebaseCreateWithMasterTimebase(allocator:masterTimebase:timebaseOut:)](coremedia/cmtimebasecreatewithmastertimebase(allocator:mastertimebase:timebaseout:).md)

## See Also

### Media Synchronization

- [CMClock](coremedia/cmclock-api.md)
- [CMAudioClock](coremedia/cmaudioclock-api.md)
