- From: Brian Birtles <birtles@gmail.com>
- Date: Thu, 22 Jan 2009 14:35:57 +1300
- To: www-smil@w3.org
- Message-ID: <65fa1620901211735q10b85a61u1b543d433d16cfed@mail.gmail.com>

Dear all, I would like to request a review of the pseudocode for getFirstInterval and getNextInterval in all versions of the SMIL specification, including SMIL3. It would be most helpful if this pseudocode was also accompanied by a prose description of the behaviour of zero-duration intervals. In my previous message I referred to the following piece of pseudocode: If (currentInterval.end > currentInterval.begin) Set tempBegin = the first value in the begin list that is >= beginAfter. Else Set tempBegin = the first value in the begin list that is > beginAfter. I believe that this belongs in getNextInterval as indicated in the SMIL2 errata.[1] Assuming that this is correct, and noting that beginAfter = currentInterval.end, it would appear that this condition disallows non-zero-duration intervals after zero-duration intervals. That is, suppose currentInterval.end == currentInterval.begin (and therefore == beginAfter). In such a case tempBegin = the first value in the begin list that is > currentInterval.end. So if we have: begin=1s; 1s end=1s; 3s dur=1s We would make an interval from 1s-1s initially, then when we come to get the next interval we would note that for the previous interval currentInterval.end == currentInterval.begin and so we would search for the first value in the begin list that is > 1s, which doesn't exist and so we would fail and the result being that we would yield only one interval and not two. Therefore it is not possible to have a non-zero-duration interval after a zero-duration interval according to the pseudocode quoted above. It should also be clarified what the expected results are for the following: begin=1s end=1s; 3s Is it one interval, 1s-1s? Or two: 1s-1s, 1s-3s. i.e. can we re-use a begin time? The pseudocode suggests we re-use begin times and I this makes implementation easier. Whatever the result, something analogous should happen in getFirstInterval for the following case: begin=-0.5s end=-0.5s; 1s Perhaps the rules is that we cannot have more than one zero-duration interval with the same begin time? Such that begin=1s end=1s; 1s; 1s; 3s; produces two intervals I have tested many of these scenarios with various implementations and they produce different results so I hope this issue can be clarified. Thank you. Best regards, Brian Birtles [1] http://www.w3.org/2001/07/REC-SMIL20-20010731-errata#E14

Received on Thursday, 22 January 2009 01:36:33 UTC