On 2020-02-18 21:40, Paul Dupuis via use-livecode wrote:
Lastly, my inquiry was also looking to actually understand what
"intervals" really are, mostly out of curiosity and interest.  I am
still curious as to what exactly "intervals" are. LC support just says
that they get them from the media frameworks and pass them along.

Heh - I guess we could have done a little better than the answer we gave (mostly my fault, Elanor asked internally, and I hadn't thought about such things in a long while so couldn't really remember the exact details / didn't read your question that deeply)...

Martin's post has the exact details - to summarize that - the 'timeScale' is the scaling provided to map units used to reference points in a media to seconds. Each second is divided up into timeScale units - so a timeScale of 600 means that there are 600 units in every second.

The reason this is done, rather than use seconds (or milliseconds, microseconds...) is to prevent error accumulating and also so that most arithmetic done internally by the frameworks can be done using integers - not floating point (which is faster, and much easier to predict and account for numerical error with).

QT allows multiple tracks to be present in a single MOV - each which have their own framerate, for example. So by using 600 in many cases, it means that you could overlay video tracks recorded at 24, 25 or 30fps precisely.

Audio formats tend not to have an inherent notion of timeScale - raw formats, for example, have N samples per second; whereas MP3 has 'packets' of compressed audio which expand to cover a given time period. So frameworks will tend to make their own up by the look of it to suit whatever seemed reasonable at the time - or use some other metric from the file (I notice that some audio files listed have a timeScale of 44100 - which probably means that audio file is 44.1kHz - the standard CD quality audio sample rate).

Given the problem you have at hand, the best thing to do is to perhaps create a small utility which you ask users of your tool to run which fetches the timeScale for all their files using QT - then you should be able to analyse that data (en masse) to see what possible timeScales exist for different formats. That should mean you can, at least, create a heuristic for guessing the timeScale of any given (existing) file.

Warmest Regards,

Mark.

--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to