Does any one know what Player "intervals" actually are?

Martin Koob mkoob at
Tue Feb 18 19:59:25 EST 2020

Hi Paul

I was curious about your original question so tried to do a search and of course wanted to find search terms to define what an interval is. As Curry says it is likely each media type has a different definition.

I did find a retired QuickTime document for the MovieToolbox that explains the time coordinate system and defines a time base which is its current time and its rate.

An interesting thing on this page about the time coordinate systems is the relation between the time scale and the maximum duration of the movie.  

Time coordinate systems have a finite maximum duration that defines the maximum time value for a time coordinate system (the minimum time value is always 0). Note that as a QuickTime movie is edited, the duration changes.
As the value of the time scale increases (as the time unit for a coordinate system gets smaller in terms of absolute time), the maximum absolute time that can be represented in a time coordinate system decreases. For example, if a time value were represented as an unsigned 16-bit integer, its maximum value would be 65,535. In a time coordinate system with a time scale of 1, the maximum time value would represent 65,535 seconds. However, in a time coordinate system with a time scale of 5, the maximum time value would correspond to 13,107 seconds. Hence, a time coordinate system’s duration is limited by its time scale. QuickTime uses 32-bit and 64-bit quantities to represent time values, so you only need to worry about attaining a maximum absolute time in situations where a time coordinate system’s duration is very long or its time scale is very large.

QuickTime is long gone and AVfoundation has taken its place and I found a description of how it handles intervals which is seems to now call just timescale.

It has an explanation of a rationale for using 600 timescale.  I considered that too for my application timescale but went with 1000 instead.   Perhaps using this would avoid rounding errors.
CMTime <> is a C structure that represents time as a rational number, with a numerator (an int64_t value), and a denominator (an int32_t timescale). Conceptually, the timescale specifies the fraction of a second each unit in the numerator occupies. Thus if the timescale is 4, each unit represents a quarter of a second; if the timescale is 10, each unit represents a tenth of a second, and so on. You frequently use a timescale of 600, because this is a multiple of several commonly used frame rates: 24 fps for film, 30 fps for NTSC (used for TV in North America and Japan), and 25 fps for PAL (used for TV in Europe). Using a timescale of 600, you can exactly represent any number of frames in these systems. 
In addition to a simple time value, a CMTime structure can represent nonnumeric values: +infinity, -infinity, and indefinite. It can also indicate whether the time been rounded at some point, and it maintains an epoch number.

I tried looking for references for WMV I wasn’t able to find anything.   I am sure as Curry says each media framework uses different terminology so I was probably not finding the right terms.


Martin Koob

> On Feb 18, 2020, at 5:58 PM, Curry Kenworthy via use-livecode <use-livecode at> wrote:
> In your own case (Paul) luckily there is probably very little cause for concern - because your files have other context available, allowing us to either convert/confirm, or else entirely replace the most important interval values. And I don't consider this difficult to tame sufficiently for practical purposes, again in your own case.
> But as a larger issue of depending on LC intervals - yep, it's huge! Really a stunning eye-opener to see the different values for the different files. We should give a quick tip to all LC developers: DON'T use intervals for permanently storing media time values. :)
> As for the original question: Given their arbitrary nature per OS/Media framework, I actually think "interval" may be the best choice of word! An arbitrary slice of time. Perfectly named, but utterly problematic if treated as anything other than arbitrary and temporary.
> Best wishes,
> Curry Kenworthy
> Custom Software Development
> "Better Methods, Better Results"
> LiveCode Training and Consulting
> _______________________________________________
> use-livecode mailing list
> use-livecode at
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:

More information about the use-livecode mailing list