Skip to content

Commit

Permalink
minor rewording around TC URIs, add acknowledgements section
Browse files Browse the repository at this point in the history
  • Loading branch information
zenomt committed Sep 10, 2023
1 parent d061bb7 commit 727f3ac
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 95 deletions.
48 changes: 29 additions & 19 deletions rtmp-errata-addenda.html
Original file line number Diff line number Diff line change
Expand Up @@ -1209,7 +1209,7 @@
<thead><tr>
<td class="left"></td>
<td class="center">RTMP Errata and Addenda</td>
<td class="right">July 2023</td>
<td class="right">September 2023</td>
</tr></thead>
<tfoot><tr>
<td class="left">Thornburgh</td>
Expand All @@ -1222,7 +1222,7 @@
<dl id="identifiers">
<dt class="label-published">Published:</dt>
<dd class="published">
<time datetime="2023-07-26" class="published">26 July 2023</time>
<time datetime="2023-09-10" class="published">10 September 2023</time>
</dd>
<dt class="label-authors">Author:</dt>
<dd class="authors">
Expand Down Expand Up @@ -1372,7 +1372,10 @@ <h2 id="name-copyright-notice-2">
</ul>
</li>
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.11">
<p id="section-toc.1-1.11.1"><a href="#appendix-A" class="auto internal xref"></a><a href="#name-authors-address-2" class="internal xref">Author's Address</a></p>
<p id="section-toc.1-1.11.1"><a href="#appendix-A" class="auto internal xref"></a><a href="#name-acknowledgements-2" class="internal xref">Acknowledgements</a></p>
</li>
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.12">
<p id="section-toc.1-1.12.1"><a href="#appendix-B" class="auto internal xref"></a><a href="#name-authors-address-2" class="internal xref">Author's Address</a></p>
</li>
</ul>
</nav>
Expand Down Expand Up @@ -1858,16 +1861,17 @@ <h4 id="name-tcurl-2">
<span><a href="https://rtmp.veriskope.com/docs/spec/#7211connect" class="relref">Section 7.2.1.1</a> of [<a href="#RTMP" class="cite xref">RTMP</a>]</span>,
RTMP family URIs follow the
<span><a href="#RFC3986" class="internal xref">generic syntax for URIs</a> [<a href="#RFC3986" class="cite xref">RFC3986</a>]</span>. The path and optional
query components identify the <em>target resource</em> within the server's
namespace.<a href="#section-7.1.2-1" class="pilcrow"></a></p>
query components identify the abstract <em>target resource</em> within the server's
namespace. See <span>[<a href="#RTMP-URIS" class="cite xref">RTMP-URIS</a>]</span> for more information about the
syntax constraints and access semantics of RTMP family URIs.<a href="#section-7.1.2-1" class="pilcrow"></a></p>
<p id="section-7.1.2-2">The meaning of "target resource" is implementation-specific and is the
prerogative of the server.<a href="#section-7.1.2-2" class="pilcrow"></a></p>
<p id="section-7.1.2-3">Interoperability Note: Some legacy client implementations incorrectly presume
<p id="section-7.1.2-3">Interoperability Note: Some client implementations incorrectly presume
the server's interpretation of the <code>path</code> component of the URI,
specifically by presuming the number of path segments that identify the target
resource and setting <code>tcUrl</code> accordingly. They then incorrectly interpret
the remaining path segments of the original URI as identifying a secondary
resource (such the name of a stream to play or publish via the connection to
resource and setting <code>tcUrl</code> accordingly. These clients then incorrectly
interpret the remaining path segments of the original URI as identifying a secondary
resource (such as the name of a stream to play or publish via the connection to
the target resource). This behavior is not in keeping with the spirit of
generic URIs (particularly that the <code>authority</code> governs its namespace),
is not interoperable, and is <span class="bcp14">NOT RECOMMENDED</span>. Such secondary
Expand All @@ -1884,13 +1888,13 @@ <h4 id="name-app-2">
<a href="#section-7.1.3" class="section-number selfRef">7.1.3. </a><a href="#name-app-2" class="section-name selfRef">app</a>
</h4>
<p id="section-7.1.3-1">The <code>app</code> property of the <code>connect</code> command's Command Object
is <span class="bcp14">REQUIRED</span>. Its value is a string indicating the
is <span class="bcp14">REQUIRED</span>. Its value is a string indicating the abstract
<em>target application resource</em> to which the client is connecting. Unless
the client has prior knowledge to the contrary of the server's specific
implementation, <code>app</code> <span class="bcp14">SHOULD</span> be set to the <code>path</code>
component of the URI to which the client is connecting, not including the
leading slash (if any).<a href="#section-7.1.3-1" class="pilcrow"></a></p>
<p id="section-7.1.3-2">The meaning of "target application resource" is implementation-specific
<p id="section-7.1.3-2">The meaning of "target application resource" is implementation-specific
and is the prerogative of the server.<a href="#section-7.1.3-2" class="pilcrow"></a></p>
</section>
<section id="section-7.1.4">
Expand All @@ -1899,7 +1903,7 @@ <h4 id="name-codec-negotiation-2">
</h4>
<p id="section-7.1.4-1">The <code>videoCodecs</code> and <code>audioCodecs</code> properties of the
<code>connect</code> command's Command Object are bit fields representing the video and
audio codecs, respectively, that the client is capable and willing to receive.
audio codecs, respectively, that the client is able and willing to receive.
These properties are <span class="bcp14">OPTIONAL</span> and each defaults to 0 (that is,
no bits set, so no codecs indicated). The values for these fields are
enumerated in
Expand Down Expand Up @@ -1995,9 +1999,13 @@ <h3 id="name-normative-references-2">
<dd>
<span class="refAuthor">Leiba, B.</span>, <span class="refTitle">"Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"</span>, <span class="seriesInfo">BCP 14</span>, <span class="seriesInfo">RFC 8174</span>, <span class="seriesInfo">DOI 10.17487/RFC8174</span>, <time datetime="2017-05" class="refDate">May 2017</time>, <span>&lt;<a href="https://www.rfc-editor.org/info/rfc8174">https://www.rfc-editor.org/info/rfc8174</a>&gt;</span>. </dd>
<dd class="break"></dd><dt id="RTMP">[RTMP]</dt>
<dd>
<dd>
<span class="refAuthor">Parmar, H., Ed.</span> and <span class="refAuthor">M. Thornburgh, Ed.</span>, <span class="refTitle">"Adobe’s Real Time Messaging Protocol"</span>, <time datetime="2012-12" class="refDate">December 2012</time>, <span>&lt;<a href="https://rtmp.veriskope.com/docs/spec/">https://rtmp.veriskope.com/docs/spec/</a>&gt;</span>. </dd>
<dd class="break"></dd>
<dt id="RTMP-URIS">[RTMP-URIS]</dt>
<dd>
<span class="refAuthor">Thornburgh, M.</span>, <span class="refTitle">"RTMP Family URI Schemes"</span>, <time datetime="2023-09" class="refDate">September 2023</time>, <span>&lt;<a href="https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris">https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris</a>&gt;</span>. </dd>
<dd class="break"></dd>
</dl>
</section>
<section id="section-10.2">
Expand All @@ -2012,15 +2020,17 @@ <h3 id="name-informative-references-2">
<dt id="RFC0793">[RFC0793]</dt>
<dd>
<span class="refAuthor">Postel, J.</span>, <span class="refTitle">"Transmission Control Protocol"</span>, <span class="seriesInfo">RFC 793</span>, <span class="seriesInfo">DOI 10.17487/RFC0793</span>, <time datetime="1981-09" class="refDate">September 1981</time>, <span>&lt;<a href="https://www.rfc-editor.org/info/rfc793">https://www.rfc-editor.org/info/rfc793</a>&gt;</span>. </dd>
<dd class="break"></dd><dt id="RTMP-URIS">[RTMP-URIS]</dt>
<dd>
<span class="refAuthor">Thornburgh, M.</span>, <span class="refTitle">"RTMP Family URI Schemes"</span>, <time datetime="2023-07" class="refDate">July 2023</time>, <span>&lt;<a href="https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris">https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris</a>&gt;</span>. </dd>
<dd class="break"></dd>
</dl>
<dd class="break"></dd></dl>
</section>
</section>
<div id="authors-addresses">
<section id="appendix-A">
<h2 id="name-acknowledgements-2">
<a href="#name-acknowledgements-2" class="section-name selfRef">Acknowledgements</a>
</h2>
<p id="appendix-A-1">Thanks to Slavik Lozben for his detailed review of this memo.<a href="#appendix-A-1" class="pilcrow"></a></p>
</section>
<div id="authors-addresses">
<section id="appendix-B">
<h2 id="name-authors-address-2">
<a href="#name-authors-address-2" class="section-name selfRef">Author's Address</a>
</h2>
Expand Down
100 changes: 50 additions & 50 deletions rtmp-errata-addenda.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@


M. Thornburgh
26 July 2023
10 September 2023


RTMP Errata and Addenda
Expand Down Expand Up @@ -55,7 +55,7 @@ Table of Contents

Thornburgh Informational [Page 1]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


4.2. Timestamp Order of Messages . . . . . . . . . . . . . . . 7
Expand All @@ -76,6 +76,7 @@ Thornburgh Informational [Page 1]
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Normative References . . . . . . . . . . . . . . . . . . 14
10.2. Informative References . . . . . . . . . . . . . . . . . 15
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 15
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 15

1. Introduction
Expand Down Expand Up @@ -108,10 +109,9 @@ Thornburgh Informational [Page 1]




Thornburgh Informational [Page 2]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


1.1. Terminology
Expand Down Expand Up @@ -167,7 +167,7 @@ Thornburgh Informational [Page 2]

Thornburgh Informational [Page 3]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


uint16le_t var;
Expand Down Expand Up @@ -223,7 +223,7 @@ Thornburgh Informational [Page 3]

Thornburgh Informational [Page 4]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


0 1 2 3 4 5 6 7|
Expand Down Expand Up @@ -279,7 +279,7 @@ Thornburgh Informational [Page 4]

Thornburgh Informational [Page 5]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7
Expand Down Expand Up @@ -335,7 +335,7 @@ Thornburgh Informational [Page 5]

Thornburgh Informational [Page 6]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


message, or that are the first chunk of subsequent messages on the
Expand Down Expand Up @@ -391,7 +391,7 @@ Thornburgh Informational [Page 6]

Thornburgh Informational [Page 7]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


This description is misleading, and suggests that receipt of this
Expand Down Expand Up @@ -447,7 +447,7 @@ Thornburgh Informational [Page 7]

Thornburgh Informational [Page 8]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


Note that in some cases these constraints are more restrictive than
Expand Down Expand Up @@ -503,7 +503,7 @@ Thornburgh Informational [Page 8]

Thornburgh Informational [Page 9]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


6.2. Object Encoding 3
Expand Down Expand Up @@ -559,7 +559,7 @@ Thornburgh Informational [Page 9]

Thornburgh Informational [Page 10]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


A Type 17 Command Extended or Type 15 Data Extended message payload
Expand Down Expand Up @@ -615,7 +615,7 @@ Thornburgh Informational [Page 10]

Thornburgh Informational [Page 11]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


7.1.2. tcUrl
Expand All @@ -624,25 +624,28 @@ Thornburgh Informational [Page 11]
REQUIRED. Its value is a string representing the URI to which the
client is connecting. Contrary to Section 7.2.1.1 of [RTMP], RTMP
family URIs follow the generic syntax for URIs [RFC3986]. The path
and optional query components identify the _target resource_ within
the server's namespace.
and optional query components identify the abstract _target resource_
within the server's namespace. See [RTMP-URIS] for more information
about the syntax constraints and access semantics of RTMP family
URIs.

The meaning of "target resource" is implementation-specific and is
the prerogative of the server.

Interoperability Note: Some legacy client implementations incorrectly
Interoperability Note: Some client implementations incorrectly
presume the server's interpretation of the path component of the URI,
specifically by presuming the number of path segments that identify
the target resource and setting tcUrl accordingly. They then
incorrectly interpret the remaining path segments of the original URI
as identifying a secondary resource (such the name of a stream to
play or publish via the connection to the target resource). This
behavior is not in keeping with the spirit of generic URIs
(particularly that the authority governs its namespace), is not
interoperable, and is NOT RECOMMENDED. Such secondary resources,
when encoded in a URI, should instead be identified by the fragment
component as described in [RTMP-URIS]. The full path and optional
query components from the original URI SHOULD be preserved in tcUrl.
the target resource and setting tcUrl accordingly. These clients
then incorrectly interpret the remaining path segments of the
original URI as identifying a secondary resource (such as the name of
a stream to play or publish via the connection to the target
resource). This behavior is not in keeping with the spirit of
generic URIs (particularly that the authority governs its namespace),
is not interoperable, and is NOT RECOMMENDED. Such secondary
resources, when encoded in a URI, should instead be identified by the
fragment component as described in [RTMP-URIS]. The full path and
optional query components from the original URI SHOULD be preserved
in tcUrl.

Per Security Considerations (Section 9), the client SHOULD strip any
userinfo and fragment components from the URI before sending it in
Expand All @@ -651,11 +654,12 @@ Thornburgh Informational [Page 11]
7.1.3. app

The app property of the connect command's Command Object is REQUIRED.
Its value is a string indicating the _target application resource_ to
which the client is connecting. Unless the client has prior
knowledge to the contrary of the server's specific implementation,
app SHOULD be set to the path component of the URI to which the
client is connecting, not including the leading slash (if any).
Its value is a string indicating the abstract _target application
resource_ to which the client is connecting. Unless the client has
prior knowledge to the contrary of the server's specific
implementation, app SHOULD be set to the path component of the URI to
which the client is connecting, not including the leading slash (if
any).

The meaning of "target application resource" is implementation-
specific and is the prerogative of the server.
Expand All @@ -665,24 +669,20 @@ Thornburgh Informational [Page 11]







Thornburgh Informational [Page 12]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


7.1.4. Codec Negotiation

The videoCodecs and audioCodecs properties of the connect command's
Command Object are bit fields representing the video and audio
codecs, respectively, that the client is capable and willing to
receive. These properties are OPTIONAL and each defaults to 0 (that
is, no bits set, so no codecs indicated). The values for these
fields are enumerated in Section 7.2.1.1 of [RTMP]; multiple codecs
are combined with bitwise-or.
codecs, respectively, that the client is able and willing to receive.
These properties are OPTIONAL and each defaults to 0 (that is, no
bits set, so no codecs indicated). The values for these fields are
enumerated in Section 7.2.1.1 of [RTMP]; multiple codecs are combined
with bitwise-or.

Interoperability Note: Some server implementations, including Adobe
Media Server, use this information to selectively filter out Video
Expand Down Expand Up @@ -727,7 +727,7 @@ Thornburgh Informational [Page 12]

Thornburgh Informational [Page 13]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


9. Security Considerations
Expand Down Expand Up @@ -783,8 +783,12 @@ Thornburgh Informational [Page 13]

Thornburgh Informational [Page 14]

RTMP Errata and Addenda July 2023
RTMP Errata and Addenda September 2023


[RTMP-URIS]
Thornburgh, M., "RTMP Family URI Schemes", September 2023,
<https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris>.

10.2. Informative References

Expand All @@ -796,9 +800,9 @@ Thornburgh Informational [Page 14]
DOI 10.17487/RFC0793, September 1981,
<https://www.rfc-editor.org/info/rfc793>.

[RTMP-URIS]
Thornburgh, M., "RTMP Family URI Schemes", July 2023,
<https://zenomt.github.io/rtmp-errata-addenda/rtmp-uris>.
Acknowledgements

Thanks to Slavik Lozben for his detailed review of this memo.

Author's Address

Expand Down Expand Up @@ -828,10 +832,6 @@ Author's Address










Expand Down
Loading

0 comments on commit 727f3ac

Please sign in to comment.