- From: Glenn Adams <glenn@skynav.com>
- Date: Thu, 19 Jun 2014 08:57:52 -0600
- To: Charles Ritchea <CRitchea@nexidia.com>
- Cc: "public-tt@w3.org" <public-tt@w3.org>
- Message-ID: <CACQ=j+eyiW0BDBMw2M1nmVzn3J+Y3sBtPciZ0e6FxyQXQQJfPg@mail.gmail.com>
Thanks for this correction. I have created a new issue [1] to track this. [1] https://www.w3.org/AudioVideo/TT/tracker/issues/322 On Wed, Jun 18, 2014 at 8:06 AM, Charles Ritchea <CRitchea@nexidia.com> wrote: > There is an error in the below SMPTE Time algorithm: > > TTML Semantics – Time Expressions and SMPTE Time Relationship > > > S = (countedFrames - droppedFrames + (subFrames / subFrameRate)) / > effectiveFrameRate > > where > > countedFrames = (3600 * hours + 60 * minutes + seconds) * frameRate + > frames > > hours, minutes, seconds, frames, subFrames components are extracted from > time expression if present, or zero if not present; > > droppedFrames is computed as follows: > > 1. let *dropMode* be the computed value of the ttp:dropMode parameter; > > 2. if *dropMode* is dropNTSC, let droppedFrames = (hours * 54 + > floor(minutes - minutes/10)) * 2; > > 3. otherwise, if *dropMode* is dropPAL, let droppedFrames = (hours * 27 + > floor(minutes/2 - minutes/20)) * 4; > > 4. otherwise, let droppedFrames = 0; > > frameRate is the computed value of the ttp:frameRate parameter; > > subFrameRate is the computed value of the ttp:subFrameRate parameter; > > and effectiveFrameRate (in frames per second) is frameRate * > frameRateMultipler where frameRate is the computed value of the > ttp:frameRate parameter and frameRateMultipler is the computed value of > the ttp:frameRateMultiplier parameter. > > Notwithstanding the above, if a time expression contains a frame code that > is designated as dropped according to *6.2.3 ttp:dropMode* > <http://www.w3.org/TR/ttaf1-dfxp/#parameter-attribute-dropMode>, then > that time expression should be considered to be invalid for purposes of > validation assessment. > > > > 2. if *dropMode* is dropNTSC, let droppedFrames = (hours * 54 + > floor(minutes - minutes/10)) * 2; > > should be: > > 2. if *dropMode* is dropNTSC, let droppedFrames = (hours * 54 + minutes – > floor(minutes/10)) * 2; > > > > This can be clearly seen in the case of 00:01:00:03, which obviously has 2 > frames dropped. > > In the original algorithm: floor(1 - 1/10)*2 -> floor(1 - 0.1)*2 -> > floor(0.9)*2 -> 0*2 -> 0 > > In the modified algorithm: (1 - floor(1/10))*2 -> (1 –floor(0.1))*2 -> > (1-0)*2 -> 1*2 -> 2 > > > > And I assume: > > 3. otherwise, if *dropMode* is dropPAL, let droppedFrames = (hours * 27 + > floor(minutes/2 - minutes/20)) * 4; > > should be: > 3. otherwise, if *dropMode* is dropPAL, let droppedFrames = (hours * 27 + > floor(minutes/2) – floor(minutes/20)) * 4; >
Received on Thursday, 19 June 2014 14:58:41 UTC