Re: Questions about the SMIL Time Model

Sjoerd Mullender wrote:
> 
> 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)

ok with your interpretation of this rule. It must be said explicitly in
the spec that when the explicit end attribute of an object refers to the
end (resp. begin) of another object, this end (resp. begin) is the
desired one (and not the effective one as we thought).
The same is true with the explicit begin rule.



> 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).
> 

It means that the execution of this example is:
t = 0 A,B and C begin to be played.
t = 4 A ends but still appears on the screen and B is interrupted and
removed from the screen
t = 8 C ends, A and C are removed from the screen

Let's now suppose that in the same example, A is a discrete object (a
picture) with a dur attribute of 4. The previous execution is correct,
isn't it ?  It could be surprising for the author since he specified
that the end of B is equal to the end of A and after 4 units of time the
picture A is still on the screen and B is not. What do you think about
that ?


> 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).

We don't agree with you on this point.

We interprate the last bullet of the implicit end rules by:

IE(par) = 
if endsync = last then EfB(par) + max(DD(each child))
if endsync = first then EfB(par) + min (DD(each child))
if endsync = id_ref then EfB(par) + DD(reference object).



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

-- 
__________________________________________________
            Muriel.Jourdan@imag.fr
Tel : 76.61.53.58            Fax : 76.61.52.07
        Unite de Recherche INRIA Rhone-Alpes,
     projet OPERA ( http://opera.inrialpes.fr/OPERA/ )
          ZIRST, 655 avenue de l'Europe,
       38330 MONTBONNOT SAINT MARTIN, FRANCE

Received on Thursday, 16 July 1998 07:56:11 UTC