[Ambulant-users] Timing bug in Ambulant?

Chris Abrams cja5 at onetel.com
Sat Aug 23 14:51:18 CEST 2008


I'm a relative newcomer to SMIL but I'm confused as to the behaviour of the
Ambulant Player when given the following SMIL:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN"

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
        <layout type="text/smil-basic-layout">
            <root-layout width="400" height="300" backgroundColor="#FFFFFF" />
            <region regionName="img" left="25" width="350" top="25" height="250"
backgroundColor="transparent" showBackground="whenActive" />
        <seq repeatCount="indefinite">
            <img src="a.gif" dur="1.5s" region="img" fill="remove" />
            <img src="b.gif" dur="1.5s" region="img" fill="remove" />
            <img src="c.gif" dur="1.5s" region="img" fill="remove" />

I would have expected the sequence of images a, b and c to be repeated
indefinitetly. However, when run on either Ambulant 1.8 on Windows or the
latest Ambulant Player built from source and running under Linux, the sequence
of images is shown just once before play stops. The problem is fixed by
modifying the opening seq element as follows:

<seq dur="4.5s" repeatCount="indefinite">

It would appear that Ambulant is unable to calculate the implicit duration of
the seq container. I get the same behaviour if I use a par container instead of
a seq, for example:

<par repeatCount="indefinite">
    <img src="a.gif" begin="0s" dur="1.5s" region="img" fill="remove" />
    <img src="b.gif" begin="1.5s" dur="1.5s" region="img" fill="remove" />
    <img src="c.gif" begin="3.0s" dur="1.5s" region="img" fill="remove" />

and once again the fix is to add a dur attribute to the parent container:

<par dur="4.5s" repeatCount="indefinite">

Before I file I bug report, can someome tell me if I've made a beginner's
mistake with my SMIL please?

Many thanks

Chris Abrams.

More information about the Ambulant-users mailing list