Re: Questions about the SMIL Time Model

On Wed, Jul 15 1998 jourdan wrote:

> The Opera project of INRIA is working on the implementation of a SMIL
> import functionnality from its multimedia authoring environment, namely
> Madeus. 
> It means that our goal is to read SMIL documents using the existing
> Madeus player. 
> 
> The temporal body of a SMIl document is our main interest. 
> We have a first version of this import functionnality 
> which takes only basic tree temporal structures of seq and par with
> some delay offset.
> We are now working on the integration of "event-value" operand in a
> begin or end attribute. We find very difficult to understand the
> semantic rules with the four kinds of events (expected,
> desired,implicit, and effective). 
> 
> More precisely, applying the  different rules to a simple example (see
> below), we get a cyclic system of equations, whereas the example seems
> to be intuitively correct.
> 
> The example: 
> A,B and C are three video. Their respective intrinsic durations are:
> 4,6,8
> 
> <smil>
> ...
> <body>
> <par endsync = "last">
>    <video id=  "A">
>    <video id = "B"  end = id(A)(End)>
>    <video id = "C">
> </par>
> </body>
> </smil>
> 
> Intuitively, it seems to us that the execution of such an example would
> give:
> 
> t = 0 A,B and C begin to be played.
> t = 4 A ends and B is interrupted
> t = 8 C ends
> 
> If we applyed the different rules, we get at the end:
> 
> Abreviations used:
>  IE (resp. ID) means Implicit End (resp. implicit Duration)
>  EfE (resp. EfD) means Effective End (resp. Effective Duration),
>  DE (resp. DD) means Desired End (resp. Desired Duration).
> 
> EfE(par node) = max(DD(A),DD(B),DD(C))
> DD(A) = 4
> DD(B) = EfE(A)
> DD(C) = 8
> 
> EfE(A) = EfE(par node)
> 
> There is a cycle between EfE(par node) and EfE(A).
> 
> Could someone help us to understand where we are wrong ?

The effective end of the par is player-dependent (first bullet of
"Determining the effective end of an element in Section 4.2.4.2), but
we know it is at least as late as the desired end of the par.
We can't say anything about the effective end of the children of the
par, since the effective end of an element depends on the effective
end of its parent.

We can say something about the desired end of the par.

DE(par) = IE(par)		 # 4th bullet Determ. des. end
IE(par) = max(DE(A),DE(B),DE(C)) # 6th bullet, 1st subbullet Determ. impl. end
DE(A) = IE(A)			 # 4th bullet Determ. des. end
IE(A) = 4			 # 3rd bullet Determ. impl. end
DE(B) = DE(A)	# rule 4 section 4.2.4.1 (should be made clearer though)
DE(C) = IE(C)			 # 4th bullet Determ. des. end
IE(C) = 8			 # 3rd bullet Determ. impl. end

So DE(par) = 8 (and so EfE(par) >= 8).

I did notice a bug in the specification, though.  The last bullet of
"Determining the implicit end of an element" uses "duration" where it
should use "end".  The end of the par depends on the end of its
children, not on their durations (since the start of those children
may be delayed).

-- Sjoerd Mullender <Sjoerd.Mullender@cwi.nl>
   <URL:http://www.cwi.nl/~sjoerd/>

Received on Wednesday, 15 July 1998 04:53:18 UTC