SMIL 2.0 Recommendation Errata - a suggestion

 
Hi,
 
I think there are some errors in the w3c SMIL 2.0 spec regarding chapter 10.3.3 - Detecting Cycles :
 
1)  Example 4:

written:
 
<par dur="10s" repeatCount="11" >
   <video id="foo" begin="0; bar.begin-1s" dur="10s" .../>
   <video id="bar" begin="foo.begin-1s" dur="10s" .../>
</par>

should be written:
 
<par dur="10s" repeatCount="11" >
   <video id="foo" begin="0; bar.begin" dur="10s" .../>
   <video id="bar" begin="foo.begin-1s" dur="10s" .../>
</par>

That's because it is written that:  "each time the parent time container repeats, the video elements will begin one second earlier than they did in the previous parent iteration".
 
As it's written, both video elements will begin TWO seconds earlier than they did in the previous parent iteration.
 
If I follow your suggested algorithm - 
 
"When an instance time changes, or when a new instance time is added to one of the lists, the element will re-evaluate the begin or end time of the current interval (using the same algorithm described in the previous section).  If this re-evaluation yields a changed interval, time change notice(s) will be sent to the associated dependents." ("Waiting to begin the interval " ) 
 
And
"When a cycle is detected, the change propagation is ignored. The element that detected the second visit ignores the second change notice, and so breaks the cycle." ("Detecting cycles" )

foo will notify bar of its first instance (begin=0s, end=10s), as a result, bar will create a new instance where bar.begin= -1s & bar.end=9s. Now bar will notify foo of its new instance so foo.begin= -2s & foo.end= 8s.
 
At this point, when foo has updated its interval and is about to acknowledge bar of it - it detects a cycle (it's about to resend a "begin" syncbase to the same element - bar).
So, it just doesn't acknowledge bar of it, and the cycle is broken.

 
2) Example 3 - 
 

<img id="foo" begin="0; bar.begin+2s" dur="3s" .../>
<img id="bar" begin="foo.begin+2s" dur="3s" .../>

I don't see any cycle here:
 
foo creates its first instance(0,3) and propagates it to bar.
As a result, bar creates its first instance(2,5) and propagates it to foo.
foo will restart at t=4. At restart, no "begin" is sent, only the calculates end is updated. As so, foo can not have more than one begin time (begin, not beginEvent) and so this is the last calculation.

 
I hope it helped.
                                                                                                                                                                                                                               Regards,
 
Dana Rosenfeld


**************************************************************************************************
The contents of this email and any attachments are confidential.
It is intended for the named recipient(s) only.
If you have received this email in error please notify the system manager or  the 
sender immediately and do not disclose the contents to any one or make copies.

** eSafe scanned this email for viruses, vandals and malicious content **
**************************************************************************************************

Received on Tuesday, 14 January 2003 13:55:07 UTC