rfc8759xml2.original.xml   rfc8759.xml 
<?xml version="1.0" encoding="utf-8"?> <?xml version='1.0' encoding='utf-8'?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Process <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
or - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-ietf-payload-rtp-ttml-06" subm <rfc number="8759" xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="t
issionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/ rust200902"
XInclude" consensus="true"> docName="draft-ietf-payload-rtp-ttml-06" submissionType="IETF"
category="std" xml:lang="en" consensus="true" obsoletes=""
updates="" sortRefs="true" symRefs="true" tocInclude="true">
<front> <front>
<title abbrev="RTP Payload for TTML Timed Text">RTP Payload for TTML Timed Text<
/title><seriesInfo value="draft-ietf-payload-rtp-ttml-06" stream="IETF" status=" <title abbrev="RTP Payload for TTML Timed Text">RTP Payload for Timed Text Marku
standard" name="Internet-Draft"></seriesInfo> p Language (TTML)</title>
<author initials="J." surname="Sandford" fullname="James Sandford"><organization <seriesInfo name="RFC" value="8759"/>
>British Broadcasting Corporation</organization><address><postal><street>Dock Ho
use, MediaCityUK</street> <author initials="J." surname="Sandford" fullname="James Sandford">
<organization>British Broadcasting Corporation</organization>
<address>
<postal>
<street>Dock House, MediaCityUK</street>
<city>Salford</city> <city>Salford</city>
<country>United Kingdom</country> <country>United Kingdom</country>
</postal><phone>+44 30304 09549</phone> </postal>
<phone>+44 30304 09549</phone>
<email>james.sandford@bbc.co.uk</email> <email>james.sandford@bbc.co.uk</email>
</address></author> </address>
<date year="2019" month="November" day="19"></date> </author>
<date month="March" year="2020"/>
<area>Internet</area> <area>Internet</area>
<workgroup>A/V Transport Payloads Workgroup</workgroup> <workgroup>A/V Transport Payloads Workgroup</workgroup>
<keyword>subtitles</keyword>
<keyword>captions</keyword>
<keyword>imsc</keyword>
<keyword>media</keyword>
<keyword>streaming</keyword>
<keyword>sdp</keyword>
<keyword>xml</keyword>
<abstract> <abstract>
<t>This memo describes a Real-time Transport Protocol (RTP) payload format for T <t>This memo describes a Real-time Transport Protocol (RTP) payload format for
TML, an XML based timed text format for live and file based workflows from W3C. Timed Text Markup Language (TTML), an XML-based timed text format from
This payload format is specifically targeted at live workflows using TTML.</t> W3C. This payload format is specifically targeted at streaming workflows using
TTML.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="introduction">
<section anchor="introduction"><name>Introduction</name> <name>Introduction</name>
<t>TTML (Timed Text Markup Language)<xref target="TTML2"></xref> is a media type <t>TTML (Timed Text Markup Language) <xref target="TTML2"/> is a media type for
for describing timed text such as closed captions and subtitles in television w describing timed text, such as closed captions and subtitles in television
orkflows or broadcasts as XML. This document specifies how TTML should be mapped workflows or broadcasts, as XML. This document specifies how TTML should be
into an RTP stream in live workflows including, but not restricted to, those de mapped into an RTP stream in streaming workflows, including (but not restricted
scribed in the television broadcast oriented EBU-TT Part 3<xref target="TECH3370 to) those described in the television-broadcast-oriented European Broadcasting
"></xref> specification. This document does not define a media type for TTML but Union Timed Text (EBU-TT) Part 3 <xref
makes use of the existing application/ttml+xml media type <xref target="TTML-MT target="TECH3370"/> specification. This document does not define a media type
PR"></xref>.</t> for TTML but makes use of the existing application/ttml+xml media type <xref
</section> target="TTML-MTPR"/>.</t>
<section anchor="conventions-definitions-and-abbreviations"><name>Conventions, D
efinitions, and Abbreviations</name>
<t>Unless otherwise stated, the term &quot;document&quot; refers to the TTML doc
ument being transmitted in the payload of the RTP packet(s).</t>
<t>The term &quot;word&quot; refers to a data word aligned to a specified number
of bits in a computing sense and not to refer to linguistic words that might ap
pear in the transported text.</t>
<t>The key words &quot;<bcp14>MUST</bcp14>&quot;, &quot;<bcp14>MUST NOT</bcp14>&
quot;, &quot;<bcp14>REQUIRED</bcp14>&quot;, &quot;<bcp14>SHALL</bcp14>&quot;, &q
uot;<bcp14>SHALL NOT</bcp14>&quot;, &quot;<bcp14>SHOULD</bcp14>&quot;, &quot;<bc
p14>SHOULD NOT</bcp14>&quot;, &quot;<bcp14>RECOMMENDED</bcp14>&quot;, &quot;<bcp
14>NOT RECOMMENDED</bcp14>&quot;, &quot;<bcp14>MAY</bcp14>&quot;, and &quot;<bcp
14>OPTIONAL</bcp14>&quot; in this document are to be interpreted as described in
BCP14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and o
nly when, they appear in all capitals, as shown here.</t>
</section> </section>
<section anchor="media-format-description"><name>Media Format Description</name> <section anchor="conventions-definitions-and-abbreviations">
<name>Conventions and Definitions</name>
<t>Unless otherwise stated, the term "document" refers to the TTML document
being transmitted in the payload of the RTP packet(s).</t>
<t>The term "word" refers to a data word aligned to a specified number of bits
in a computing sense and not to linguistic words that might appear in
the transported text.</t>
<section anchor="relation-to-other-text-payload-types"><name>Relation to Other T <t>
ext Payload Types</name> The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
<t>Prior payload types for text are not suited to the carriage of closed caption "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
s in Television Workflows. RFC 4103 for Text Conversation <xref target="RFC4103" NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
></xref> is intended for low data rate conversation with its own session managem "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
ent and minimal formatting capabilities. RFC 4734 Events for Modem, Fax, and Tex "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
t Telephony Signals <xref target="RFC4734"></xref> deals in large parts with the to be interpreted as
control signalling of facsimile and other systems. RFC 4396 for 3rd Generation described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
Partnership Project (3GPP) Timed Text <xref target="RFC4396"></xref> describes t when, and only when, they appear in all capitals, as shown here.
he carriage of a timed text format with much more restricted formatting capabili </t>
ties than TTML. The lack of an existing format for TTML or generic XML has neces
sitated the creation of this payload format.</t>
</section> </section>
<section anchor="ttml2"><name>TTML2</name> <section anchor="media-format-description">
<t>TTML2 (Timed Text Markup Language, Version 2)<xref target="TTML2"></xref> is <name>Media Format Description</name>
an XML-based markup language for describing textual information with associated <section anchor="relation-to-other-text-payload-types">
timing metadata. One of its primary use cases is the description of subtitles an <name>Relation to Other Text Payload Types</name>
d closed captions. A number of profiles exist that adapt TTML2 for use in specif <t>Prior payload types for text are not suited to the carriage of closed
ic contexts <xref target="TTML-MTPR"></xref>. These include both file based and captions in television workflows. "RTP Payload for Text Conversation" <xref
streaming workflows.</t> target="RFC4103"/> is intended for low data rate conversation with its own
session management and minimal formatting capabilities. "Definition of Events fo
r
Modem, Fax, and Text Telephony Signals" <xref target="RFC4734"/> deals in large
parts with the control signalling of facsimile and other systems. "RTP Payload F
ormat for
3rd Generation Partnership Project (3GPP) Timed Text" <xref
target="RFC4396"/>
describes the carriage of a timed text format with much more restricted
formatting capabilities than TTML. The lack of an existing format for TTML or
generic XML has necessitated the creation of this payload format.</t>
</section>
<section anchor="ttml2">
<name>TTML2</name>
<t>TTML2 (Timed Text Markup Language, Version 2) <xref target="TTML2"/> is an
XML-based markup language for describing textual information with associated
timing metadata. One of its primary use cases is the description of subtitles
and closed captions. A number of profiles exist that adapt TTML2 for use in
specific contexts <xref target="TTML-MTPR"/>. These include both file-based
and streaming workflows.</t>
</section> </section>
</section> </section>
<section anchor="payload-format"><name>Payload Format</name> <section anchor="payload-format">
<t>In addition to the required RTP headers, the payload contains a section for t <name>Payload Format</name>
he TTML document being transmitted (User Data Words), and a field for the Length <t>In addition to the required RTP headers, the payload contains a section for
of that data. Each RTP payload contains one or part of one TTML document.</t> the TTML document being transmitted (User Data Words) and a field for the
<t>A representation of the payload format for TTML is <xref target="FigRTPFormat length of that data. Each RTP payload contains one or part of one TTML
"></xref>.</t> document.</t>
<figure anchor="FigRTPFormat"><name>RTP Payload Format for TTML </name> <t>A representation of the payload format for TTML is <xref target="FigRTPFormat
<sourcecode type="ascii-art"> 0 1 2 "/>.</t>
3
<figure anchor="FigRTPFormat">
<name>RTP Payload Format for TTML </name>
<artwork name="" type="" align="left" alt=""><![CDATA[
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | Sequence Number | |V=2|P|X| CC |M| PT | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Synchronization Source (SSRC) Identifier | | Synchronization Source (SSRC) Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Length | | Reserved | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User Data Words... | User Data Words...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</sourcecode> ]]></artwork>
</figure> </figure>
<section anchor="rtpHeaderUsage"><name>RTP Header Usage</name> <section anchor="rtpHeaderUsage">
<t>RTP packet header fields SHALL be interpreted as per RFC 3550 <xref target="R <name>RTP Header Usage</name>
FC3550"></xref>, with the following specifics:</t> <t>RTP packet header fields <bcp14>SHALL</bcp14> be interpreted, as per <xref
target="RFC3550"/>, with the following specifics:</t>
<dl newline="true"> <dl newline="true" spacing="normal">
<dt>Marker Bit (M): 1 bit</dt> <dt>Marker Bit (M): 1 bit</dt>
<dd><t>The Marker Bit is set to &quot;1&quot; to indicate the last packet of a d <dd>The marker bit is set to "1" to indicate the last packet of a
ocument. Otherwise set to &quot;0&quot;. Note: The first packet might also be th document. Otherwise, set to "0". Note: The first packet might also be the
e last.</t> last.</dd>
</dd>
<dt>Timestamp: 32 bits</dt> <dt>Timestamp: 32 bits</dt>
<dd><t>The RTP Timestamp encodes the epoch of the TTML document in User Data Wor <dd>The RTP Timestamp encodes the epoch of the TTML document in User Data
ds. Further detail on its usage may be found in <xref target="payloadProc"></xre Words. Further detail on its usage may be found in <xref
f>. The clock frequency used is dependent on the application and is specified in target="payloadProc"/>. The clock frequency used is dependent on the
the media type rate parameter as per <xref target="rate"></xref>. Documents spr application and is specified in the media type rate parameter, as per <xref
ead across multiple packets MUST use the same timestamp but different consecutiv target="rate"/>. Documents spread across multiple packets <bcp14>MUST</bcp14>
e Sequence Numbers. Sequential documents MUST NOT use the same timestamp. Becau use the same timestamp but different consecutive Sequence Numbers. Sequential
se packets do not represent any constant duration, the timestamp cannot be used documents <bcp14>MUST NOT</bcp14> use the same timestamp. Because packets do
to directly infer packet loss.</t> not represent any constant duration, the timestamp cannot be used to directly
</dd> infer packet loss.</dd>
<dt>Reserved: 16 bits</dt> <dt>Reserved: 16 bits</dt>
<dd><t>These bits are reserved for future use and MUST be set to 0x0 and ignored
at receive.</t> <dd>These bits are reserved for future use and <bcp14>MUST</bcp14> be set to
</dd> 0x0 and ignored upon reception.</dd>
<dt>Length: 16 bits</dt> <dt>Length: 16 bits</dt>
<dd><t>The length of User Data Words in bytes.</t> <dd>The length of User Data Words in bytes.</dd>
</dd> <dt>User Data Words: The length of User Data Words <bcp14>MUST</bcp14> match
<dt>User Data Words: The length of User Data Words MUST match the value specifie the value specified in the Length field</dt>
d in the Length field</dt> <dd>The User Data Words section contains the text of the whole document being tr
<dd><t>User Data Words contains the text of the whole document being transmitted ansmitted
or a part of the document being transmitted. Documents using character encoding or a part of the document being transmitted. Documents using character
s where characters are not represented by a single byte MUST be serialized in bi encodings where characters are not represented by a single byte
g endian order, a.k.a. network byte order. Where a document will not fit within <bcp14>MUST</bcp14> be serialised in big-endian order, a.k.a., network byte
the Path MTU, it may be fragmented across multiple packets. Further detail on fr order. Where a document will not fit within the Path MTU, it may be fragmented
agmentation may be found in <xref target="fragmentation"></xref>.</t> across multiple packets. Further detail on fragmentation may be found in <xref
</dd> target="fragmentation"/>.</dd>
</dl> </dl>
</section> </section>
<section anchor="payload-data"><name>Payload Data</name> <section anchor="payload-data">
<t>TTML documents define a series of changes to text over time. TTML documents c <name>Payload Data</name>
arried in User Data Words are encoded in accordance with one or more of the defi <t>TTML documents define a series of changes to text over time. TTML documents
ned TTML profiles specified in the TTML registry <xref target="TTML-MTPR"></xref carried in User Data Words are encoded in accordance with one or more of the
>. These profiles specify the document structure used, systems models, timing, a defined TTML profiles specified in the TTML registry <xref
nd other considerations. TTML profiles may restrict the complexity of the change target="TTML-MTPR"/>. These profiles specify the document structure used,
s and operational requirements may limit the maximum duration of TTML documents systems models, timing, and other considerations. TTML profiles may restrict
by a deployment configuration. Both of these cases are out of scope of this docu the complexity of the changes, and operational requirements may limit the
ment.</t> maximum duration of TTML documents by a deployment configuration. Both of
<t>Documents carried over RTP MUST conform to the following profile in addition these cases are out of scope of this document.</t>
to any others used.</t> <t>Documents carried over RTP <bcp14>MUST</bcp14> conform to the following
profile, in addition to any others used.</t>
</section> </section>
</section> </section>
<section anchor="payload-content-restrictions"><name>Payload content restriction <section anchor="payload-content-restrictions">
s</name> <name>Payload Content Restrictions</name>
<t>This section defines constraints on the content of TTML documents carried ove <t>This section defines constraints on the content of TTML documents carried
r RTP.</t> over RTP.</t>
<t>Multiple TTML subtitle streams MUST NOT be interleaved in a single RTP stream <t>Multiple TTML subtitle streams <bcp14>MUST NOT</bcp14> be interleaved in a
.</t> single RTP stream.</t>
<t>The TTML document instance's root <tt>tt</tt> element in the <tt>http://www.w <t>The TTML document instance's root <tt>tt</tt> element in the
3.org/ns/ttml</tt> namespace MUST include a <tt>timeBase</tt> attribute in the < <tt>http://www.w3.org/ns/ttml</tt> namespace <bcp14>MUST</bcp14> include a
tt>http://www.w3.org/ns/ttml#parameter</tt> namespace containing the value <tt>m <tt>timeBase</tt> attribute in the
edia</tt>.</t> <tt>http://www.w3.org/ns/ttml#parameter</tt> namespace containing the value
<t>This is equivalent to the TTML2 content profile definition document in <xref <tt>media</tt>.</t>
target="FigContProf"></xref>.</t> <t>This is equivalent to the TTML2 content profile definition document in
<figure anchor="FigContProf"><name>TTML2 Content Profile Definition for Document <xref target="FigContProf"/>.</t>
s Carried Over RTP </name> <figure anchor="FigContProf">
<sourcecode type="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quo <name>TTML2 Content Profile Definition for Documents Carried over RTP </name>
t;?&gt; <sourcecode type="xml">
&lt;profile xmlns=&quot;http://www.w3.org/ns/ttml#parameter&quot; <![CDATA[
xmlns:ttm=&quot;http://www.w3.org/ns/ttml#metadata&quot; <?xml version="1.0" encoding="UTF-8"?>
xmlns:tt=&quot;http://www.w3.org/ns/ttml&quot; <profile xmlns="http://www.w3.org/ns/ttml#parameter"
type=&quot;content&quot; xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
designator=&quot;urn:ietf:rfc:XXXX#content&quot; xmlns:tt="http://www.w3.org/ns/ttml"
combine=&quot;mostRestrictive&quot;&gt; type="content"
&lt;features xml:base=&quot;http://www.w3.org/ns/ttml/feature/&quot;&gt; designator="urn:ietf:rfc:8759#content"
&lt;tt:metadata&gt; combine="mostRestrictive">
&lt;ttm:desc&gt; <features xml:base="http://www.w3.org/ns/ttml/feature/">
<tt:metadata>
<ttm:desc>
This document is a minimal TTML2 content profile This document is a minimal TTML2 content profile
definition document intended to express the definition document intended to express the
minimal requirements to apply when carrying TTML minimal requirements to apply when carrying TTML
over RTP. over RTP.
&lt;/ttm:desc&gt; </ttm:desc>
&lt;/tt:metadata&gt; </tt:metadata>
&lt;feature value=&quot;required&quot;&gt;#timeBase-media&lt;/feature&gt <feature value="required">#timeBase-media</feature>
; <feature value="prohibited">#timeBase-smpte</feature>
&lt;feature value=&quot;prohibited&quot;&gt;#timeBase-smpte&lt;/feature& <feature value="prohibited">#timeBase-clock</feature>
gt; </features>
&lt;feature value=&quot;prohibited&quot;&gt;#timeBase-clock&lt;/feature& </profile>
gt; ]]>
&lt;/features&gt;
&lt;/profile&gt;
</sourcecode> </sourcecode>
</figure> </figure>
</section> </section>
<section anchor="payloadProc"><name>Payload processing requirements</name> <section anchor="payloadProc">
<name>Payload Processing Requirements</name>
<t>This section defines constraints on the processing of the TTML documents carr ied over RTP.</t> <t>This section defines constraints on the processing of the TTML documents carr ied over RTP.</t>
<t>If a TTML document is assessed to be invalid then it MUST be discarded. This <t>If a TTML document is assessed to be invalid, then it <bcp14>MUST</bcp14> be
includes empty documents, i.e. those of zero length. When processing a valid doc discarded. This includes empty documents, i.e., those of zero length. When
ument, the following requirements apply.</t> processing a valid document, the following requirements apply.</t>
<t>Each TTML document becomes active at its epoch E. E MUST be set to the RTP Ti <t>Each TTML document becomes active at its epoch E. E <bcp14>MUST</bcp14> be
mestamp in the header of the RTP packet carrying the TTML document. Computed TTM set to the RTP Timestamp in the header of the RTP packet carrying the TTML
L media times are offset relative to E in accordance with Section I.2 of <xref t document. Computed TTML media times are offset relative to E, in accordance
arget="TTML2"></xref>.</t> with Section I.2 of <xref target="TTML2"/>.</t>
<t>When processing a sequence of TTML documents each delivered in the same RTP s <t>When processing a sequence of TTML documents, where each is delivered in
tream, exactly zero or one document SHALL be considered active at each moment in the same RTP stream, exactly zero or one document <bcp14>SHALL</bcp14> be
the RTP time line. In the event that a document D<sub>n-1</sub> with E<sub>n-1< considered active at each moment in the RTP time line.
/sub> is active, and document D<sub>n</sub> is delivered with E<sub>n</sub> wher In the event that a document
e E<sub>n-1</sub> &lt; E<sub>n</sub>, processing of D<sub>n-1</sub> MUST be stop D<sub>n-1</sub> with E<sub>n-1</sub> is active, and document D<sub>n</sub> is
ped at E<sub>n</sub> and processing of D<sub>n</sub> MUST begin.</t> delivered with E<sub>n</sub> where E<sub>n-1</sub> &lt; E<sub>n</sub>,
<t>When all defined content within a document has ended then processing of the d processing of D<sub>n-1</sub> <bcp14>MUST</bcp14> be stopped at E<sub>n</sub>
ocument MAY be stopped. This can be tested by constructing the intermediate sync and processing of D<sub>n</sub> <bcp14>MUST</bcp14> begin.</t>
hronic document sequence from the document, as defined by <xref target="TTML2">< <t>When all defined content within a document has ended, then processing of the
/xref>. If the last intermediate synchronic document in the sequence is both act document <bcp14>MAY</bcp14> be stopped. This can be tested by constructing the
ive and contains no region elements, then all defined content within the documen intermediate synchronic document sequence from the document, as defined by
t has ended.</t> <xref target="TTML2"/>. If the last intermediate synchronic document in the
<t>As described above, the RTP Timestamp does not specify the exact timing of th sequence is both active and contains no region elements, then all defined
e media in this payload format. Additionally, documents may be fragmented across content within the document has ended.</t>
multiple packets. This renders the RTCP jitter calculation unusable.</t> <t>As described above, the RTP Timestamp does not specify the exact timing of
the media in this payload format. Additionally, documents may be fragmented
across multiple packets. This renders the RTCP jitter calculation
unusable.</t>
<section anchor="ttml-processor-profile"><name>TTML Processor profile</name> <section anchor="ttml-processor-profile">
<name>TTML Processor Profile</name>
<section anchor="feature-extension-designation"><name>Feature extension designat <section anchor="feature-extension-designation">
ion</name> <name>Feature Extension Designation</name>
<t>This specification defines the following TTML feature extension designation:< /t> <t>This specification defines the following TTML feature extension designation:< /t>
<ul empty="true">
<ul> <li><tt>urn:ietf:rfc:8759#rtp-relative-media-time</tt></li>
<li><t>urn:ietf:rfc:XXXX#rtp-relative-media-time</t>
</li>
</ul> </ul>
<t>The namespace <tt>urn:ietf:rfc:XXXX</tt> is as defined by <xref target="RFC26
48"></xref>.</t> <t>The namespace <tt>urn:ietf:rfc:8759</tt> is as defined by <xref target="RFC26
<t>A TTML content processor supports the <tt>#rtp-relative-media-time</tt> featu 48"/>.</t>
re extension if it processes media times in <t>A TTML content processor supports the <tt>#rtp-relative-media-time</tt>
accordance with the payload processing requirements specified in this document, feature extension if it processes media times in accordance with the payload
i.e. that the epoch E is set to the processing requirements specified in this document, i.e., that the epoch E is
time equivalent to the RTP Timestamp as detailed above in <xref target="payloadP set to the time equivalent to the RTP Timestamp, as detailed above in <xref
roc"></xref>.</t> target="payloadProc"/>.</t>
</section> </section>
<section anchor="processor-profile-document"><name>Processor profile document</n <section anchor="processor-profile-document">
ame> <name>Processor Profile Document</name>
<t>The required syntax and semantics declared in the minimal TTML2 processor pro <t>The required syntax and semantics declared in the minimal TTML2 processor
file in <xref target="FigProcProf"></xref> MUST be supported by the receiver, profile in <xref target="FigProcProf"/> <bcp14>MUST</bcp14> be supported by
as signified by those <tt>feature</tt> or <tt>extension</tt> elements whose <tt> the receiver,
value</tt> attribute is set to <tt>required</tt>.</t> as signified by those <tt>feature</tt> or <tt>extension</tt> elements whose
<figure anchor="FigProcProf"><name>TTML2 Processor Profile Definition for Proces <tt>value</tt> attribute is set to <tt>required</tt>.</t>
sing Documents Carried Over RTP </name> <figure anchor="FigProcProf">
<sourcecode type="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quo <name>TTML2 Processor Profile Definition for Processing Documents Carried over
t;?&gt; RTP </name>
&lt;profile xmlns=&quot;http://www.w3.org/ns/ttml#parameter&quot; <sourcecode type="xml">
xmlns:ttm=&quot;http://www.w3.org/ns/ttml#metadata&quot; <![CDATA[
xmlns:tt=&quot;http://www.w3.org/ns/ttml&quot; <?xml version="1.0" encoding="UTF-8"?>
type=&quot;processor&quot; <profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator=&quot;urn:ietf:rfc:XXXX#processor&quot; xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
combine=&quot;mostRestrictive&quot;&gt; xmlns:tt="http://www.w3.org/ns/ttml"
&lt;features xml:base=&quot;http://www.w3.org/ns/ttml/feature/&quot;&gt; type="processor"
&lt;tt:metadata&gt; designator="urn:ietf:rfc:8759#processor"
&lt;ttm:desc&gt; combine="mostRestrictive">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<tt:metadata>
<ttm:desc>
This document is a minimal TTML2 processor profile This document is a minimal TTML2 processor profile
definition document intended to express the definition document intended to express the
minimal requirements of a TTML processor able to minimal requirements of a TTML processor able to
process TTML delivered over RTP according to process TTML delivered over RTP according to
RFC XXXX. RFC 8759.
&lt;/ttm:desc&gt; </ttm:desc>
&lt;/tt:metadata&gt; </tt:metadata>
&lt;feature value=&quot;required&quot;&gt;#timeBase-media&lt;/feature&gt <feature value="required">#timeBase-media</feature>
; <feature value="optional">
&lt;feature value=&quot;optional&quot;&gt;
#profile-full-version-2 #profile-full-version-2
&lt;/feature&gt; </feature>
&lt;/features&gt; </features>
&lt;extensions xml:base=&quot;urn:ietf:rfc:XXXX&quot;&gt; <extensions xml:base="urn:ietf:rfc:8759">
&lt;extension restricts=&quot;#timeBase-media&quot; value=&quot;required <extension restricts="#timeBase-media" value="required">
&quot;&gt;
#rtp-relative-media-time #rtp-relative-media-time
&lt;/extension&gt; </extension>
&lt;/extensions&gt; </extensions>
&lt;/profile&gt; </profile>
]]>
</sourcecode> </sourcecode>
</figure> </figure>
<t>Note that this requirement does not imply that the receiver needs to support <t>Note that this requirement does not imply that the receiver needs to
either TTML1 support either TTML1 or TTML2 profile processing, i.e., the TTML2
or TTML2 profile processing, i.e. the TTML2 <tt>#profile-full-version-2</tt> fea <tt>#profile-full-version-2</tt> feature or any of
ture or any of
its dependent features.</t> its dependent features.</t>
</section> </section>
<section anchor="codecs"><name>Processor profile signalling</name> <section anchor="codecs">
<t>The <tt>codecs</tt> media type parameter MUST specify at least one processor <name>Processor Profile Signalling</name>
profile. Short codes for TTML profiles are registered at <xref target="TTML-MTPR <t>The <tt>codecs</tt> media type parameter <bcp14>MUST</bcp14> specify at
"></xref>. The processor profiles specified in <tt>codecs</tt> MUST be compatibl least one processor profile. Short codes for TTML profiles are registered at
e with the processor profile specified in this document. Where multiple options <xref target="TTML-MTPR"/>. The processor profiles specified in
exist in <tt>codecs</tt> for possible processor profile combinations (i.e. separ <tt>codecs</tt> <bcp14>MUST</bcp14> be compatible with the processor profile
ated by <tt>|</tt> operator), every permitted option MUST be compatible with the specified in this document. Where multiple options exist in <tt>codecs</tt>
processor profile specified in this document. Where processor profiles other th for possible processor profile combinations (i.e., separated by <tt>|</tt>
an the one specified in this document are advertised in the <tt>codecs</tt> para operator), every permitted option <bcp14>MUST</bcp14> be compatible with the
meter, the requirements of the processor profile specified in this document MAY processor profile specified in this document. Where processor profiles (other
be signalled additionally using the <tt>+</tt> operator with its registered shor than the one specified in this document) are advertised in the <tt>codecs</tt>
t code.</t> parameter, the requirements of the processor profile specified in this
<t>A processor profile (X) is compatible with the processor profile specified he document <bcp14>MAY</bcp14> be signalled, additionally using the <tt>+</tt>
re (P) if X includes all the features and extensions in P, identified by their c operator with its registered short code.</t>
haracter content, and the <tt>value</tt> attribute of each is at least as restri <t>A processor profile (X) is compatible with the processor profile specified
ctive as the <tt>value</tt> attribute of the feature or extension in P that has here (P) if X includes all the features and extensions in P (identified by
the same character content. The term &quot;restrictive&quot; here is as defined their character content) and the <tt>value</tt> attribute of each is, at least,
in <xref target="TTML2"></xref> Section 6.</t> as restrictive as the <tt>value</tt> attribute of the feature or extension in
P that has the same character content. The term "restrictive" here is as
defined in Section 6 of <xref target="TTML2"/>.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="payload-examples"><name>Payload Examples</name> <section anchor="payload-examples">
<t><xref target="FigEGDoc"></xref> is an example of a valid TTML document that m <name>Payload Examples</name>
ay be carried using the payload format described in this document.</t> <t><xref target="FigEGDoc"/> is an example of a valid TTML document that may
<figure anchor="FigEGDoc"><name>Example TTML Document </name> be carried using the payload format described in this document.</t>
<sourcecode type="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quo <figure anchor="FigEGDoc">
t;?&gt; <name>Example TTML Document</name>
&lt;tt xml:lang=&quot;en&quot; <sourcecode type="xml">
xmlns=&quot;http://www.w3.org/ns/ttml&quot; <![CDATA[
xmlns:ttm=&quot;http://www.w3.org/ns/ttml#metadata&quot; <?xml version="1.0" encoding="UTF-8"?>
xmlns:ttp=&quot;http://www.w3.org/ns/ttml#parameter&quot; <tt xml:lang="en"
xmlns:tts=&quot;http://www.w3.org/ns/ttml#styling&quot; xmlns="http://www.w3.org/ns/ttml"
ttp:timeBase=&quot;media&quot; xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
&gt; xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
&lt;head&gt; xmlns:tts="http://www.w3.org/ns/ttml#styling"
&lt;metadata&gt; ttp:timeBase="media"
&lt;ttm:title&gt;Timed Text TTML Example&lt;/ttm:title&gt; >
&lt;ttm:copyright&gt;The Authors (c) 2006&lt;/ttm:copyright&gt; <head>
&lt;/metadata&gt; <metadata>
&lt;styling&gt; <ttm:title>Timed Text TTML Example</ttm:title>
&lt;!-- <ttm:copyright>The Authors (c) 2006</ttm:copyright>
</metadata>
<styling>
<!--
s1 specifies default color, font, and text alignment s1 specifies default color, font, and text alignment
--&gt; -->
&lt;style xml:id=&quot;s1&quot; <style xml:id="s1"
tts:color=&quot;white&quot; tts:color="white"
tts:fontFamily=&quot;proportionalSansSerif&quot; tts:fontFamily="proportionalSansSerif"
tts:fontSize=&quot;100%&quot; tts:fontSize="100%"
tts:textAlign=&quot;center&quot; tts:textAlign="center"
/&gt; />
&lt;/styling&gt; </styling>
&lt;layout&gt; <layout>
&lt;region xml:id=&quot;subtitleArea&quot; <region xml:id="subtitleArea"
style=&quot;s1&quot; style="s1"
tts:extent=&quot;78% 11%&quot; tts:extent="78% 11%"
tts:padding=&quot;1% 5%&quot; tts:padding="1% 5%"
tts:backgroundColor=&quot;black&quot; tts:backgroundColor="black"
tts:displayAlign=&quot;after&quot; tts:displayAlign="after"
/&gt; />
&lt;/layout&gt; </layout>
&lt;/head&gt; </head>
&lt;body region=&quot;subtitleArea&quot;&gt; <body region="subtitleArea">
&lt;div&gt; <div>
&lt;p xml:id=&quot;subtitle1&quot; dur=&quot;5.0s&quot; style=&quot;s1&quo <p xml:id="subtitle1" dur="5.0s" style="s1">
t;&gt;
How truly delightful! How truly delightful!
&lt;/p&gt; </p>
&lt;/div&gt; </div>
&lt;/body&gt; </body>
&lt;/tt&gt; </tt>
]]>
</sourcecode> </sourcecode>
</figure> </figure>
</section> </section>
<section anchor="fragmentation"><name>Fragmentation of TTML Documents</name> <section anchor="fragmentation">
<t>Many of the use cases for TTML are low bit-rate with RTP packets expected to <name>Fragmentation of TTML Documents</name>
fit within the Path MTU. However, some documents may exceed the Path MTU. In the <t>Many of the use cases for TTML are low bit-rate with RTP packets expected
se cases, they may be split between multiple packets. Where fragmentation is use to fit within the Path MTU. However, some documents may exceed the Path
d, the following guidelines MUST be followed:</t> MTU. In these cases, they may be split between multiple packets. Where
fragmentation is used, the following guidelines <bcp14>MUST</bcp14> be
followed:</t>
<ul> <ul>
<li><t>It is RECOMMENDED that documents be fragmented as seldom as possible, i.e <li><t>It is <bcp14>RECOMMENDED</bcp14> that documents be fragmented as seldom
., the least possible number of fragments is created out of a document.</t> as possible, i.e., the least possible number of fragments is created out of a
document.</t>
</li> </li>
<li><t>Text strings MUST split at character boundaries. This enables decoding of <li><t>Text strings <bcp14>MUST</bcp14> split at character boundaries. This
partial documents. As a consequence, document fragmentation requires knowledge enables decoding of partial documents. As a consequence, document
of the UTF-8/UTF-16 encoding formats to determine character boundaries.</t> fragmentation requires knowledge of the UTF-8/UTF-16 encoding formats to
determine character boundaries.</t>
</li> </li>
<li><t>Document fragments SHOULD be protected against packet losses. More inform <li><t>Document fragments <bcp14>SHOULD</bcp14> be protected against packet
ation can be found in <xref target="lossOfData"></xref></t> losses. More information can be found in <xref target="lossOfData"/>.</t>
</li> </li>
</ul> </ul>
<t>When a document spans more than one RTP packet, the entire document is obtain <t>When a document spans more than one RTP packet, the entire document is
ed by concatenating User Data Words from each consecutive contributing packet in obtained by concatenating User Data Words from each consecutive contributing
ascending order of Sequence Number.</t> packet in ascending order of Sequence Number.</t>
<t>As described in <xref target="payloadProc"></xref>, only zero or one TTML doc <t>As described in <xref target="payloadProc"/>, only zero or one TTML
ument may be active at any point in time. As such, there MUST only be one docume document may be active at any point in time. As such, there
nt transmitted for a given RTP Timestamp. Furthermore, as stated in <xref target <bcp14>MUST</bcp14> only be one document transmitted for a given RTP
="rtpHeaderUsage"></xref>, the Marker Bit MUST be set for a packet containing th Timestamp. Furthermore, as stated in <xref target="rtpHeaderUsage"/>, the
e last fragment of a document. A packet following one where the Marker Bit is se marker bit <bcp14>MUST</bcp14> be set for a packet containing the last
t contains the first fragment of a new document. The first fragment might also b fragment of a document. A packet following one where the marker bit is set
e the last.</t> contains the first fragment of a new document. The first fragment might also
be the last.</t>
</section> </section>
<section anchor="lossOfData"><name>Protection Against Loss of Data</name> <section anchor="lossOfData">
<t>Consideration must be devoted to keeping loss of documents due to packet loss <name>Protection against Loss of Data</name>
within acceptable limits. What is deemed acceptable limits is dependant on the <t>Consideration must be devoted to keeping loss of documents due to packet
TTML profile(s) used and use case among other things. As such, specific limits a loss within acceptable limits. What is deemed acceptable limits is dependent
re outside the scope of this document.</t> on the TTML profile(s) used and use case, among other things. As such, specific
<t>Documents MAY be sent without additional protection if end-to-end network con limits are outside the scope of this document.</t>
ditions allow document loss to be within acceptable limits in all anticipated lo <t>Documents <bcp14>MAY</bcp14> be sent without additional protection if
ad conditions. Where such guarantees cannot be provided, implementations MUST us end-to-end network conditions guarantee that document loss will be within
e a mechanism to protect against packet loss. Potential mechanisms include FEC < acceptable limits under all anticipated load conditions. Where such guarantees
xref target="RFC5109"></xref>, retransmission <xref target="RFC4588"></xref>, du cannot be provided, implementations <bcp14>MUST</bcp14> use a mechanism to
plication <xref target="ST2022-7"></xref>, or an equivalent technique.</t> protect against packet loss. Potential mechanisms include Forward Error
Correction (FEC) <xref target="RFC5109"/>, retransmission <xref
target="RFC4588"/>, duplication <xref target="ST2022-7"/>, or an equivalent
technique.</t>
</section> </section>
<section anchor="congestion-control-considerations"><name>Congestion Control Con <section anchor="congestion-control-considerations">
siderations</name> <name>Congestion Control Considerations</name>
<t>Congestion control for RTP SHALL be used in accordance with <xref target="RFC <t>Congestion control for RTP <bcp14>SHALL</bcp14> be used in accordance with
3550"></xref>, and with any applicable RTP profile: e.g., <xref target="RFC3551" <xref target="RFC3550"/> and with any applicable RTP profile, e.g., <xref
></xref>. Circuit Breakers <xref target="RFC8083"></xref> is an update to RTP <x target="RFC3551"/>. "Multimedia Congestion Control: Circuit Breakers for
ref target="RFC3550"></xref> that defines criteria for when one is required to s Unicast RTP Sessions" <xref target="RFC8083"/> is an update to
top sending RTP Packet Streams. Applications implementing this standard MUST com "RTP: A Transport Protocol for Real-time
ply with <xref target="RFC8083"></xref> with particular attention paid to Sectio Applications" <xref target="RFC3550"/>, which defines criteria for when one is r
n 4.4 on Media Usability. <xref target="RFC8085"></xref> provides additional inf equired to
ormation on the best practices for applying congestion control to UDP streams.</ stop sending RTP packet streams. Applications implementing this standard
t> <bcp14>MUST</bcp14> comply with <xref target="RFC8083"/>, with particular
attention paid to Section <xref target="RFC8083" sectionFormat="bare" section="4
.4"/>
on Media Usability. <xref target="RFC8085"/> provides additional information
on the best practices for applying congestion control to UDP streams.</t>
</section> </section>
<section anchor="payload-format-parameters"><name>Payload Format Parameters</nam <section anchor="payload-format-parameters">
e> <name>Payload Format Parameters</name>
<t>This RTP payload format is identified using the existing application/ttml+xml <t>This RTP payload format is identified using the existing
media type as registered with IANA <xref target="IANA"></xref> and defined in < application/ttml+xml media type as registered with IANA <xref target="IANA"/>
xref target="TTML-MTPR"></xref>.</t> and defined in <xref target="TTML-MTPR"/>.</t>
<section anchor="rate"><name>Clock Rate</name> <section anchor="rate">
<t>The default clock rate for TTML over RTP is 1000Hz. The clock rate SHOULD be <name>Clock Rate</name>
included in any advertisements of the RTP stream where possible. This parameter <t>The default clock rate for TTML over RTP is 1000 Hz. The clock rate
has not been added to the media type definition as it is not applicable to TTML <bcp14>SHOULD</bcp14> be included in any advertisements of the RTP stream
usage other than within RTP streams. In other contexts, timing is defined within where possible. This parameter has not been added to the media type definition
the TTML document.</t> as it is not applicable to TTML usage other than within RTP streams. In other
<t>When choosing a clock rate, implementers should consider what other media the contexts, timing is defined within the TTML document.</t>
ir TTML streams may be used in conjunction with (e.g. video or audio). In these <t>When choosing a clock rate, implementers should consider what other media
situations, it is RECOMMENDED that streams use the same clock source and clock r their TTML streams may be used in conjunction with (e.g., video or audio). In
ate as the related media. As TTML streams may be aperiodic, implementers should these situations, it is <bcp14>RECOMMENDED</bcp14> that streams use the same
also consider the frequency range over which they expect packets to be sent and clock source and clock rate as the related media. As TTML streams may be
the temporal resolution required.</t> aperiodic, implementers should also consider the frequency range over which
they expect packets to be sent and the temporal resolution required.</t>
</section> </section>
<section anchor="sdp-considerations"><name>SDP Considerations</name> <section anchor="sdp-considerations">
<t>The mapping of the application/ttml+xml media type and its parameters <xref t <name>Session Description Protocol (SDP) Considerations</name>
arget="TTML-MTPR"></xref> SHALL be done according to Section 3 of <xref target=" <t>The mapping of the application/ttml+xml media type and its parameters <xref
RFC4855"></xref>.</t> target="TTML-MTPR"/> <bcp14>SHALL</bcp14> be done according to
<xref target="RFC4855" sectionFormat="of" section="3"/>.</t>
<ul> <ul>
<li><t>The type name &quot;application&quot; goes in SDP &quot;m=&quot; as the m edia name.</t> <li><t>The type name "application" goes in SDP "m=" as the media name.</t>
</li> </li>
<li><t>The media subtype &quot;ttml+xml&quot; goes in SDP &quot;a=rtpmap&quot; a s the encoding name,</t> <li><t>The media subtype "ttml+xml" goes in SDP "a=rtpmap" as the encoding name. </t>
</li> </li>
<li><t>The clock rate also goes in &quot;a=rtpmap&quot; as the clock rate.</t> <li><t>The clock rate also goes in "a=rtpmap" as the clock rate.</t>
</li> </li>
</ul> </ul>
<t>Additional format specific parameters as described in the media type specific <t>Additional format-specific parameters, as described in the media type
ation SHALL be included in the SDP file in &quot;a=fmtp&quot; as a semicolon sep specification, <bcp14>SHALL</bcp14> be included in the SDP file in "a=fmtp" as
arated list of &quot;parameter=value&quot; pairs as described in <xref target="R a semicolon-separated list of "parameter=value" pairs, as described in <xref
FC4855"></xref>. The <tt>codecs</tt> parameter MUST be included in the <tt>a=fmt target="RFC4855"/>. The <tt>codecs</tt> parameter <bcp14>MUST</bcp14> be
p</tt> line of the SDP file. Specific requirements for the &quot;codecs&quot; pa included in the <tt>a=fmtp</tt> line of the SDP file. Specific requirements
rameter are included in <xref target="codecs"></xref>.</t> for the "codecs" parameter are included in <xref target="codecs"/>.</t>
<section anchor="examples"><name>Examples</name> <section anchor="examples">
<t>A sample SDP mapping is presented in <xref target="FigSDP"></xref>.</t> <name>Examples</name>
<figure anchor="FigSDP"><name>Example SDP mapping </name> <t>A sample SDP mapping is presented in <xref target="FigSDP"/>.</t>
<sourcecode type="text">m=application 30000 RTP/AVP 112 <figure anchor="FigSDP">
<name>Example SDP Mapping </name>
<sourcecode type="sdp">
<![CDATA[
m=application 30000 RTP/AVP 112
a=rtpmap:112 ttml+xml/90000 a=rtpmap:112 ttml+xml/90000
a=fmtp:112 charset=utf-8;codecs=im1t a=fmtp:112 charset=utf-8;codecs=im2t
]]>
</sourcecode> </sourcecode>
</figure> </figure>
<t>In this example, a dynamic payload type 112 is used. The 90 kHz RTP timestamp <t>In this example, a dynamic payload type 112 is used. The 90 kHz RTP
rate is specified in the &quot;a=rtpmap&quot; line after the subtype. timestamp rate is specified in the "a=rtpmap" line after the subtype.
The codecs parameter defined in the &quot;a=fmtp&quot; line indicates that the T The codecs parameter defined in the "a=fmtp" line indicates that the TTML data
TML data conforms to IMSC 1 Text profile.</t> conforms to Internet Media and Captions (IMSC) 1.1 Text profile <xref
target="TTML-IMSC1.1"/>.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="iana-considerations"><name>IANA Considerations</name> <section anchor="iana-considerations">
<t>No IANA action.</t> <name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
</section> </section>
<section anchor="security"><name>Security Considerations</name> <section anchor="security">
<t>RTP packets using the payload format defined in this specification are subjec <name>Security Considerations</name>
t to the security considerations discussed in the RTP specification <xref target <t>RTP packets using the payload format defined in this specification are
="RFC3550"></xref> , and in any applicable RTP profile such as RTP/AVP <xref tar subject to the security considerations discussed in the RTP specification
get="RFC3551"></xref>, RTP/AVPF <xref target="RFC4585"></xref>, RTP/SAVP <xref t <xref target="RFC3550"/> and in any applicable RTP profile, such as RTP/AVP
arget="RFC3711"></xref>, or RTP/SAVPF <xref target="RFC5124"></xref>. However, <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xref
as &quot;Securing the RTP Protocol Framework: Why RTP Does Not Mandate a Single target="RFC3711"/>, or RTP/SAVPF <xref target="RFC5124"/>.
Media Security Solution&quot; <xref target="RFC7202"></xref> discusses, it is no
t an RTP payload format's responsibility to discuss or mandate what solutions ar
e used to meet the basic security goals like confidentiality, integrity, and sou
rce authenticity for RTP in general. This responsibility lays on anyone using R
TP in an application. They can find guidance on available security mechanisms a
nd important considerations in &quot;Options for Securing RTP Sessions&quot; <xr
ef target="RFC7201"></xref>. Applications SHOULD use one or more appropriate st
rong security mechanisms. The rest of this Security Considerations section disc
usses the security impacting properties of the payload format itself.</t>
<t>To avoid potential buffer overflow attacks, receivers should take care to val
idate that the User Data Words in the RTP payload are of the appropriate length
(using the Length field).</t>
<t>This payload format places no specific restrictions on the size of TTML docum
ents that may be transmitted. As such, malicious implementations could be used t
o perform denial-of-service (DoS) attacks. RFC 4732 <xref target="RFC4732"></xre
f> provides more information on DoS attacks and describes some mitigation strate
gies. Implementers should take into consideration that the size and frequency of
documents transmitted using this format may vary over time. As such, sender imp
lementations should avoid producing streams that exhibit DoS-like behaviour and
receivers should avoid false identification of a legitimate stream as malicious.
</t>
<t>As with other XML types and as noted in RFC 7303 <xref target="RFC7303"></xre
f>, XML Media Types, Section 10, repeated expansion of maliciously constructed X
ML entities can be used to consume large amounts of memory, which may cause XML
processors in constrained environments to fail.</t>
<t>In addition, because of the extensibility features for TTML and of XML in gen
eral, it is possible that &quot;application/ttml+xml&quot; may describe content
that has security implications beyond those described here. However, TTML does n
ot provide for any sort of active or executable content, and if the processor fo
llows only the normative semantics of the published specification, this content
will be outside TTML namespaces and may be ignored. Only in the case where the p
rocessor recognizes and processes the additional content, or where further proce
ssing of that content is dispatched to other processors, would security issues p
otentially arise. And in that case, they would fall outside the domain of this R
TP payload format and the application/ttml+xml registration document.</t>
<t>Although not prohibited, there are no expectations that XML signatures or enc
ryption would normally be employed.</t>
<t>Further information related to privacy and security at a document level can b
e found in TTML 2 Appendix P <xref target="TTML2"></xref>.</t>
</section>
<section anchor="acknowledgements"><name>Acknowledgements</name> However, as
<t>Thanks to Nigel Megitt, James Gruessing, Robert Wadge, Andrew Bonney, James W "Securing the RTP Protocol Framework: Why RTP Does Not Mandate a Single Media
eaver, John Fletcher, Frans De jong, and Willem Vermost for their valuable feedb Security Solution" <xref target="RFC7202"/> discusses, it is not an RTP
ack throughout the development of this document. Thanks to the W3C Timed Text Wo payload format's responsibility to discuss or mandate what solutions are used
rking Group and EBU Timed Text working group for their substantial efforts in de to meet the basic security goals (like confidentiality, integrity, and source
veloping the timed text formats this payload format is intended to carry.</t> authenticity) for RTP in general. This responsibility lays on anyone using RTP
in an application. They can find guidance on available security mechanisms
and important considerations in "Options for Securing RTP Sessions" <xref
target="RFC7201"/>. Applications <bcp14>SHOULD</bcp14> use one or more
appropriate strong security mechanisms. The rest of this Security
Considerations section discusses the security impacting properties of the
payload format itself.</t>
<t>To avoid potential buffer overflow attacks, receivers should take care to
validate that the User Data Words in the RTP payload are of the appropriate
length (using the Length field).</t>
<t>This payload format places no specific restrictions on the size of TTML
documents that may be transmitted. As such, malicious implementations could be
used to perform denial-of-service (DoS) attacks. <xref
target="RFC4732"/> provides more information on DoS attacks and describes some
mitigation strategies. Implementers should take into consideration that the
size and frequency of documents transmitted using this format may vary over
time. As such, sender implementations should avoid producing streams that
exhibit DoS-like behaviour, and receivers should avoid false identification of
a legitimate stream as malicious.</t>
<t>As with other XML types and as noted in <xref target="RFC7303"
section="10" sectionFormat="of">"XML Media Types"</xref>,
repeated expansion of maliciously constructed XML
entities can be used to consume large amounts of memory, which may cause XML
processors in constrained environments to fail.</t>
<t>In addition, because of the extensibility features for TTML and of XML in
general, it is possible that "application/ttml+xml" may describe content that
has security implications beyond those described here. However, TTML does not
provide for any sort of active or executable content, and if the processor
follows only the normative semantics of the published specification, this
content will be outside TTML namespaces and may be ignored. Only in the case
where the processor recognizes and processes the additional content or where
further processing of that content is dispatched to other processors would
security issues potentially arise. And in that case, they would fall outside
the domain of this RTP payload format and the application/ttml+xml
registration document.</t>
<t>Although not prohibited, there are no expectations that XML signatures or
encryption would normally be employed.</t>
<t>Further information related to privacy and security at a document level can
be found in Appendix P of <xref target="TTML2"/>.</t>
</section> </section>
</middle> </middle>
<back> <back>
<references><name>Normative References</name> <references>
<name>Normative References</name>
<reference anchor="TECH3370" target="https://tech.ebu.ch/publications/tech3370"> <reference anchor="TECH3370" target="https://tech.ebu.ch/publications/tech3370">
<front> <front>
<title>TECH 3370 - EBU-TT PART 3: LIVE CONTRIBUTION</title> <title>EBU-TT, Part 3, Live Subtitling Applications: System Model and
Content Profile for Authoring and Contribution</title>
<author> <author>
<organization>European Broadcasting Union</organization> <organization>European Broadcasting Union</organization>
</author> </author>
<date year="2017" month="May"></date> <date year="2017" month="May"/>
</front> </front>
<seriesInfo name="EBU-TT" value="Part 3"/>
<seriesInfo name="Tech" value="3370"/>
</reference> </reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550. xml"/>
<reference anchor="TTML2" target="https://www.w3.org/TR/ttml2/"> <reference anchor="TTML2" target="https://www.w3.org/TR/ttml2/">
<front> <front>
<title>Timed Text Markup Language 2 (TTML2)</title> <title>Timed Text Markup Language 2 (TTML2)</title>
<author> <author initials="G." surname="Adams" fullname="Glenn Adams" role="editor">
<organization>W3C - Timed Text Working Group</organization> <organization/>
</author> </author>
<date year="2018" month="November"></date> <author initials="C." surname="Concolato" fullname="Cyril Concolato" role="e
ditor"/>
<date year="2018" month="November"/>
</front> </front>
<seriesInfo name="W3C Recommendation" value="REC-ttml2-20181108"/>
</reference> </reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8083. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8083. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4855. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4855. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4103. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4103. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7303. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7303. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8085. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8085. xml"/>
<reference anchor="TTML-MTPR" target="https://www.w3.org/TR/ttml-profile-registr y/"> <reference anchor="TTML-MTPR" target="https://www.w3.org/TR/ttml-profile-registr y/">
<front> <front>
<title>TTML Media Type Definition and Profile Registry</title> <title>TTML Media Type Definition and Profile Registry</title>
<author> <author initials="G." surname="Adams" fullname="Glenn Adams" role="editor">
<organization>W3C - Timed Text Working Group</organization> <organization/>
</author> </author>
<date year="2019" month="April"></date> <author initials="M." surname="Dolan" fullname="Mike Dolan" role="editor">
<organization/>
</author>
<date year="2019" month="April"/>
</front> </front>
<!-- <seriesInfo name="W3C Working Group Note"
value="NOTE-ttml-profile-registry-20190411"/> -->
<refcontent>W3C Working Group Note</refcontent>
</reference> </reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. xml"/>
<reference anchor="IANA" target="https://www.iana.org/assignments/media-types/me dia-types.xhtml#application"> <reference anchor="IANA" target="https://www.iana.org/assignments/media-types">
<front> <front>
<title>IANA - Media Types - Application</title> <title>Media Types</title>
<author> <author>
<organization>IANA</organization> <organization>IANA</organization>
</author> </author>
<date year="2019" month="February"></date>
</front> </front>
</reference> </reference>
</references> </references>
<references><name>Informative References</name> <references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4396. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4396. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7201. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7201. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2648. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2648. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5124. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5124. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5109. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5109. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4588. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4588. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4585. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4585. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7202. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7202. xml"/>
<reference anchor="TTML-IMSC1.1" target="https://www.w3.org/TR/ttml-imsc1.1/">
<front>
<title>TTML Profiles for Internet Media Subtitles and Captions 1.1</title>
<author initials="P." surname="Lemieux" fullname="Pierre Lemieux" role="edit
or"/>
<date year="2018" month="November"/>
</front>
<seriesInfo name="W3C Recommendation" value="REC-ttml-imsc1.1-20181108"/>
</reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3551. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3551. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4732. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4732. xml"/>
<reference anchor="ST2022-7" target="https://ieeexplore.ieee.org/document/871682 2"> <reference anchor="ST2022-7" target="https://ieeexplore.ieee.org/document/871682 2">
<front> <front>
<title>ST 2022-7:2019 - Seamless Protection Switching of SMPTE ST 2022 IP Da tagrams</title> <title>Seamless Protection Switching of RTP Datagrams</title>
<author> <author>
<organization>SMPTE</organization> <organization>SMPTE</organization>
</author> </author>
<date year="2019" month="November"></date> <date year="2019" month="May"/>
</front> </front>
<seriesInfo name="ST" value="2022-7:2019"/>
<seriesInfo name="DOI" value="10.5594/SMPTE.ST2022-7.2019"/>
</reference> </reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3711. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3711. xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4734. xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4734. xml"/>
</references> </references>
<section anchor="rfc-editor-considerations"><name>RFC Editor Considerations</nam <section anchor="acknowledgements" numbered="false">
e> <name>Acknowledgements</name>
<t>Note to RFC Editor: This section may be removed after carrying out all the in <t>Thanks to <contact fullname="Nigel Megitt"/>, <contact fullname="James
structions of this section.</t> Gruessing"/>, <contact fullname="Robert Wadge"/>, <contact fullname="Andrew
<t>The namespace <tt>urn:ietf:rfc:XXXX</tt> is to be replaced with the namespace Bonney"/>, <contact fullname="James Weaver"/>, <contact fullname="John
for this document once it has received an RFC number.</t> Fletcher"/>, <contact fullname="Frans
<t><tt>RFC XXXX</tt> in <xref target="FigProcProf"></xref> is to be replaced wit de Jong"/>, and <contact fullname="Willem Vermost"/> for their valuable
h the RFC number for this document.</t> feedback throughout the
development of this document. Thanks to the W3C Timed Text Working Group and
EBU Timed Text Working Group for their substantial efforts in developing the
timed text format this payload format is intended to carry.</t>
</section> </section>
</back> </back>
</rfc> </rfc>
 End of changes. 78 change blocks. 
456 lines changed or deleted 535 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/