diff --git a/index.html b/index.html index c97f213..0bded72 100755 --- a/index.html +++ b/index.html @@ -1034,6 +1034,7 @@
<content-descriptor> values
+

Character

@@ -2101,6 +2102,12 @@

Namespaces

http://www.w3.org/ns/ttml/profile/dapt/extension/ This specification + + EBU-TT Metadata + ebuttm + urn:ebu:tt:metadata + [[EBU-TT-3390]] +

@@ -2111,22 +2118,23 @@

Namespaces

all undefined names in these namespaces are reserved for future standardization by the W3C.

+
-

Related Media Object (TTML)

+

Related Media Object

Within DAPT, the common language terms audio and video are used in the context of a programme. The audio and video are each a part of what is defined in [[TTML2]] as the Related Media Object that provides the media timeline and is the source of the main programme audio, and any visual timing references needed when adjusting timings relevant to the video image, such as for lip synchronization.

-
-

A DAPT document can identify the programme acting - as the Related Media Object using metadata. For example, it is possible - to use the <ebuttm:sourceMediaIdentifier> element defined in [[EBU-TT-3390]].

-

-          
- +
+

A DAPT document can identify the programme acting + as the Related Media Object using metadata. For example, it is possible + to use the <ebuttm:sourceMediaIdentifier> element defined in [[EBU-TT-3390]].

+

+        
+

Synchronization

@@ -2158,6 +2166,7 @@

Synchronization

no more than 35ms before the time specified in the DAPT document and no more than 45ms after the time specified.

+

Profile Signaling

This section defines how a TTML @@ -2747,6 +2756,190 @@

Security Considerations

+
+

Timecode-related metadata

+

DAPT Documents express time as media time, + which assumes that there is a reference start time (zero) on a media + timeline, and a fixed playrate. + An alternative scheme that is used in some other script formats is to + synchronise media components using timecode, + that match time stamps that are applied, + for example to each frame of video. +

+

Workflows that create DAPT documents from + such timecode-based non-DAPT script formats + need to map those timecode + values onto the DAPT document's timeline.

+

If this mapping is not correct, presentation of the + DAPT Document will not be synchronised with the related media object. + A reference timecode that matches a known + point on the DAPT document timeline can be used + to achieve correct synchronisation, for example + the timecode corresponding to the start of the programme, + which should match DAPT time zero.

+

In this scenario, if such a reference point is not known, + but timecodes corresponding to Script Events are known, + it is still possible to construct a DAPT Document, + albeit one whose synchronisation with the related media has not yet been resolved.

+

The optional DAPT Origin Timecode and + Start of Programme Timecode properties can be used to + identify when there is a possible synchronisation error, + and to resynchronise the document when all + the required information is known.

+

These properties are provided as metadata only and + are not intended to be used to perform direct synchronisation offsets + during presentation. + In particular, when the related media object uses timecode, + the presence of the timecode properties does not mean that + the player needs to relate these timecode values with + any timecode value embedded in the related media resource.

+ +

If either a DAPT Origin Timecode object + or a Start of Programme Timecode object is present, + the DAPT Document MUST have + one <head> element child of the <tt> element, + and that <head> element MUST have + at least one <metadata> element child.

+ +
+
DAPT Origin Timecode
+

The optional DAPT Origin Timecode allows a timecode value to be declared + that corresponds to the zero point of the DAPT document timeline, + that is, the time of a hypothetical Script Event whose Begin is + zero seconds.

+

The properties can be used to provide timecodes from + the related media object or from any other script format used to produce the DAPT document, + and are informational. + However, when they are both provided and differ, + it is an indication that the DAPT document is not synchronized with + the related media object and that processing of the script event begins is needed. + To achieve synchronization, the following needs to be done:

+
    +
  1. The difference + DAPT Origin Timecode minus the Start of Programme Timecode + is computed as "delta". + It may be positive or negative.
  2. +
  3. Each Script Event's Begin and End value X shall be changed to X + delta.
  4. +
  5. The DAPT Origin Timecode shall be removed or changed to the Start of Programme timecode value + so that if this algorithm is run again it will result in delta that is zero.
  6. +
+

A DAPT Script MAY contain zero or one DAPT Origin Timecode objects.

+

The DAPT Origin Timecode object is represented in a DAPT Document by + a <daptm:daptOriginTimecode> element present at the path + /tt/head/metadata/daptm:daptOriginTimecode, + with the following constraints:

+ +

See also . + No mechanism is defined here for declaring a different frame rate for the DAPT Origin Timecode + than is used for other frame-based time expressions. +

+

If the related media object contains a timecode for the video frame + synchronized to the origin of the DAPT document timeline, + the DAPT origin timecode is equal that timecode. +

+
+...
+<head>
+<metadata>
+<daptm:daptOriginTimecode>10:01:20:12</daptm:daptOriginTimecode>
+</metadata>
+</head>
+<body>
+<div xml:id="se1" begin="0s" end="1.8s">
+<!-- This script event was generated from a source whose begin timecode was 10:01:20:12 -->
+</div>
+</body>
+...
+      
+ +
+ +
+
Start of Programme Timecode
+

The optional Start of Programme Timecode allows a timecode value to be declared + that corresponds to the beginning of the related media object's programme content.

+

In combination with DAPT Origin Timecode, + the value of Start of Programme Timecode can be used to infer whether or not + the media times in the DAPT Script are likely to be correctly synchronised with + the Related Media Object.

+

If both DAPT Origin Timecode and Start of Programme Timecode are present, + but their values are different, it is likely that the media times are not + synchronised with the Related Media Object, since this implies that + the equivalent time code to zero seconds in media time is not the start of the programme, + which is the requirement for correctly synchronised media time.

+

A DAPT Script MAY contain zero or one Start of Programme Timecode objects.

+

The Start of Programme Timecode object is represented in a DAPT Document by + a <ebuttm:documentStartOfProgramme> element present at the path + /tt/head/metadata/ebuttm:documentStartOfProgramme, + with the syntactic constraints as defined in [[EBU-TT-3390]].

+
+...
+<head>
+<metadata>
+<daptm:daptOriginTimecode>10:01:20:12</daptm:daptOriginTimecode>
+<ebuttm:documentStartOfProgramme>10:00:00:00<ebuttm:documentStartOfProgramme>
+<!-- It is likely that this document is 1 minute, 20 seconds and 12 frames too early,
+  compared to the related media -->
+</metadata>
+</head>
+<body>
+<div xml:id="se1" begin="0s" end="1.8s">
+<!-- This script event was generated from a source whose begin timecode was 10:01:20:12 -->
+</div>
+</body>
+...
+      
+

If the times of the Script Events are adjusted to bring + the media time into synchronisation with the Related Media Object, + as noted in DAPT Origin Timecode, the Start of Programme Timecode + SHOULD NOT be changed, since it is an invariant feature of the Related Media Object, + and does not describe the times in the DAPT Document.

+
+ +
+

Audio Mixing

@@ -3313,6 +3506,13 @@

Disposition of Features and Extensions

This is the profile expression of . + + #daptOriginTimecode + permitted + + This is the profile expression of . + + #onScreen permitted @@ -3492,6 +3692,15 @@

#contentProfiles-root

+
+

#daptOriginTimecode

+

A transformation processor supports the #daptOriginTimecode extension if + it recognizes and is capable of transforming values of the + <daptm:daptOriginTimecode> element.

+ +

No presentation processor behaviour is defined for the #daptOriginTimecode extension.

+
+

#onScreen

A transformation processor supports the #onScreen extension if diff --git a/profiles/dapt-content-profile.xml b/profiles/dapt-content-profile.xml index 68a2e41..15146f1 100644 --- a/profiles/dapt-content-profile.xml +++ b/profiles/dapt-content-profile.xml @@ -91,6 +91,7 @@ #xmlLang-root #agent + #daptOriginTimecode #onScreen #scriptEventGrouping #scriptEventMapping diff --git a/profiles/dapt-processor-profile.xml b/profiles/dapt-processor-profile.xml index 23845cf..0729164 100644 --- a/profiles/dapt-processor-profile.xml +++ b/profiles/dapt-processor-profile.xml @@ -84,6 +84,7 @@ #agent #contentProfiles-root + #daptOriginTimecode #onScreen #represents #scriptEventGrouping