如何计算TTML中par和seq timeContainers的隐式持续时间?

时间:2015-05-13 09:39:16

标签: ttml

我在http://www.w3.org/2008/12/dfxp-testsuite/web-framework/START.html(MediaSeqTiming002)的TTML测试套件中有以下摘录:

<body timeContainer="par">
  <div timeContainer="seq" dur="40s">
    <div timeContainer="seq" dur="20s">
      <metadata>
        <ttm:desc>default duration for elements in this context is 0</ttm:desc>
      </metadata>
      <p begin="00:00:05:00" dur="5s">This text must appear at 5 seconds<br/>and be remain visible to 10 seconds,</p>
      <p begin="00:00:05:00">This text must not appear.</p>
      <p  dur="00:00:05:00">This text must appear at 15 seconds<br/>and be remain visible to 20 seconds,</p>
    </div>
    [...]
  </div>
</body>

要求第二个<p>元素的文本(第8行)不正确吗? 我分析了TTML规范(http://www.w3.org/TR/ttaf1-dfxp/),发现了以下内容:

  • &#34;此文字不得出现​​&#34;是并行timeContainer中的匿名范围,因此根据10.4(第一个项目符号),其隐式持续时间为无限期
  • 包含上述文本的<p>元素具有隐式持续时间,该持续时间在其所有子项都变为非活动状态时结束(根据endsync = 所有并行timeContainers),因此其隐含的持续时间也是无限期的。

由此我推断&#34;此文字不得出现​​&#34;应该从15s开始到20s结束,第三个<p>永远不应该变为活动状态。

测试似乎表明第二个<p>的隐式持续时间应为0。

我哪里错了?

1 个答案:

答案 0 :(得分:2)

你没错;我同意你的结论 - 另见我在Explanation of W3C TTML timing attributes

的解释

你给我的例子我相信解决了:

  • 0s到5s:没有显示
  • 5s到10s:This text must appear at 5 seconds<br/>and be remain visible to 10 seconds,
  • 10s到15s:没有显示
  • 15s至20s:This text must not appear.
  • 20s起:没有显示

元数据描述似乎不正确。

分析

TTML1 §10.4 Timing intervals说:

  
      
  • body,div,p或span元素的隐式持续时间根据(1)元素是并行或顺序时间容器来确定,(2)10.2.4 timeContainer定义的默认endync语义,(3)适用于这些时间容器的[SMIL 2.1]的语义。
  •   

在这种情况下,div元素是(显式)seq时间容器,p元素是(隐式)par时间容器。 par timeContainer的隐式持续时间在SMIL 2.1中定义为

  

par的隐含持续时间

     

par的隐式持续时间由endsync控制。默认情况下,par的隐式持续时间由endsync =“last”语义定义。隐式持续时间以子元素的最后一个活动结束结束。

但是,TTML1指定endsync的适用值为"all",这意味着par timeContainer的隐式持续时间实际上是'直到其父timeContainer结束'。

为了完整性,seq timeContainer的隐式dur在SMIL 2.1中定义为

  

seq容器的隐含持续时间

     
      
  • seq的隐式持续时间以seq的最后一个子节点的活动结束结束。
  •   
  • 如果seq的任何子节点具有无限活动持续时间,则seq的隐式持续时间也是无限期的。
  •   

这当然不适用于此,因为所有seq timeContainers都明确指定了持续时间。

解决有缺陷的测试

我已将此测试添加为“不良”测试,以解决https://www.w3.org/AudioVideo/TT/tracker/issues/265

中的错误测试的问题