Skip to content

Commit 0ecab62

Browse files
Merge pull request #551 from bdrtc/371-add-frameduration-to-opus-encoder-config
SHA: eab6c4d Reason: push, by @tguilbert-google Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c875a1e commit 0ecab62

File tree

1 file changed

+49
-7
lines changed

1 file changed

+49
-7
lines changed

opus_codec_registration.html

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<link href="https://www.w3.org/2008/site/images/favicon.ico" rel="icon">
99
<meta content="Bikeshed version 44af0bf3e, updated Fri Jul 29 17:05:16 2022 -0700" name="generator">
1010
<link href="https://www.w3.org/TR/webcodecs-opus-codec-registration/" rel="canonical">
11-
<meta content="5c88ee543277a6d6490dc8eea8730b25026e6f28" name="document-revision">
11+
<meta content="eab6c4da66a39c76c65d26f75373dad303cc334b" name="document-revision">
1212
<style>/* style-autolinks */
1313

1414
.css.css, .property.property, .descriptor.descriptor {
@@ -643,7 +643,7 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
643643
<li><a href="#audiodecoderconfig-description"><span class="secno">3</span> <span class="content">AudioDecoderConfig description</span></a>
644644
<li><a href="#encodedaudiochunk-type"><span class="secno">4</span> <span class="content">EncodedAudioChunk type</span></a>
645645
<li>
646-
<a href="#audioencoderconfig-extensions"><span class="secno">5</span> <span class="content">AudiEncoderConfig extensions</span></a>
646+
<a href="#audioencoderconfig-extensions"><span class="secno">5</span> <span class="content">AudioEncoderConfig extensions</span></a>
647647
<ol class="toc">
648648
<li><a href="#opus-encoder-config"><span class="secno">5.1</span> <span class="content">OpusEncoderConfig</span></a>
649649
<li><a href="#opus-bitstream-format"><span class="secno">5.2</span> <span class="content">OpusBitstreamFormat</span></a>
@@ -692,7 +692,7 @@ <h2 class="heading settled" data-level="4" id="encodedaudiochunk-type"><span cla
692692
Opus is always "<a data-link-type="dfn" href="https://w3c.github.io/webcodecs/#dom-encodedaudiochunktype-key" id="ref-for-dom-encodedaudiochunktype-key">key</a>".</p>
693693
<p class="note" role="note"><span>NOTE:</span> Once the initialization has succeeded, any packet can be decoded at any
694694
time without error, but this might not result in the expected audio output.</p>
695-
<h2 class="heading settled" data-level="5" id="audioencoderconfig-extensions"><span class="secno">5. </span><span class="content">AudiEncoderConfig extensions</span><a class="self-link" href="#audioencoderconfig-extensions"></a></h2>
695+
<h2 class="heading settled" data-level="5" id="audioencoderconfig-extensions"><span class="secno">5. </span><span class="content">AudioEncoderConfig extensions</span><a class="self-link" href="#audioencoderconfig-extensions"></a></h2>
696696
<pre class="idl highlight def"><c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://w3c.github.io/webcodecs/#dictdef-audioencoderconfig" id="ref-for-dictdef-audioencoderconfig①"><c- g>AudioEncoderConfig</c-></a> {
697697
<a data-link-type="idl-name" href="#dictdef-opusencoderconfig" id="ref-for-dictdef-opusencoderconfig"><c- n>OpusEncoderConfig</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="OpusEncoderConfig " href="#dom-audioencoderconfig-opus" id="ref-for-dom-audioencoderconfig-opus"><c- g>opus</c-></a>;
698698
};
@@ -705,12 +705,23 @@ <h2 class="heading settled" data-level="5" id="audioencoderconfig-extensions"><s
705705
<h3 class="heading settled" data-level="5.1" id="opus-encoder-config"><span class="secno">5.1. </span><span class="content">OpusEncoderConfig</span><a class="self-link" href="#opus-encoder-config"></a></h3>
706706
<pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-opusencoderconfig"><code><c- g>OpusEncoderConfig</c-></code></dfn> {
707707
<a data-link-type="idl-name" href="#enumdef-opusbitstreamformat" id="ref-for-enumdef-opusbitstreamformat"><c- n>OpusBitstreamFormat</c-></a> <a class="idl-code" data-default="&quot;opus&quot;" data-link-type="dict-member" data-type="OpusBitstreamFormat " href="#dom-opusencoderconfig-format" id="ref-for-dom-opusencoderconfig-format"><c- g>format</c-></a> = "opus";
708+
[<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#EnforceRange" id="ref-for-EnforceRange"><c- g>EnforceRange</c-></a>] <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long" id="ref-for-idl-unsigned-long"><c- b>unsigned</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="unsigned long " href="#dom-opusencoderconfig-frameduration" id="ref-for-dom-opusencoderconfig-frameduration"><c- g>frameDuration</c-></a>;
708709
};
709710

710711
</pre>
712+
<p>To check if an <code class="idl"><a data-link-type="idl" href="#dictdef-opusencoderconfig" id="ref-for-dictdef-opusencoderconfig②">OpusEncoderConfig</a></code> is valid, run these steps:</p>
713+
<ol>
714+
<li data-md>
715+
<p>If <code class="idl"><a data-link-type="idl" href="#dom-opusencoderconfig-frameduration" id="ref-for-dom-opusencoderconfig-frameduration①">frameDuration</a></code> is not a valid <code>ptime</code> value,
716+
which is described in Section 6.1 of <a data-link-type="biblio" href="#biblio-rfc7587">[RFC7587]</a>, return <code>false</code>.</p>
717+
<li data-md>
718+
<p>Return <code>true</code>.</p>
719+
</ol>
711720
<dl>
712721
<dt><dfn class="dfn-paneled idl-code" data-dfn-for="OpusEncoderConfig" data-dfn-type="dict-member" data-export id="dom-opusencoderconfig-format"><code>format</code></dfn>, <span> of type <a data-link-type="idl-name" href="#enumdef-opusbitstreamformat" id="ref-for-enumdef-opusbitstreamformat①">OpusBitstreamFormat</a>, defaulting to <code>"opus"</code></span>
713722
<dd> Configures the format of output <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webcodecs/#encodedaudiochunk" id="ref-for-encodedaudiochunk⑥">EncodedAudioChunk</a></code>s. See <code class="idl"><a data-link-type="idl" href="#enumdef-opusbitstreamformat" id="ref-for-enumdef-opusbitstreamformat②">OpusBitstreamFormat</a></code>.
723+
<dt><dfn class="dfn-paneled idl-code" data-dfn-for="OpusEncoderConfig" data-dfn-type="dict-member" data-export id="dom-opusencoderconfig-frameduration"><code>frameDuration</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#idl-unsigned-long" id="ref-for-idl-unsigned-long①">unsigned long</a></span>
724+
<dd> Configures the frame duration, in milliseconds, of output <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webcodecs/#encodedaudiochunk" id="ref-for-encodedaudiochunk⑦">EncodedAudioChunk</a></code>s.
714725
</dl>
715726
<h3 class="heading settled" data-level="5.2" id="opus-bitstream-format"><span class="secno">5.2. </span><span class="content">OpusBitstreamFormat</span><a class="self-link" href="#opus-bitstream-format"></a></h3>
716727
<pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-opusbitstreamformat"><code><c- g>OpusBitstreamFormat</c-></code></dfn> {
@@ -780,6 +791,7 @@ <h2 class="no-num no-ref heading settled" id="index"><span class="content">Index
780791
<h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3>
781792
<ul class="index">
782793
<li><a href="#dom-opusencoderconfig-format">format</a><span>, in § 5.1</span>
794+
<li><a href="#dom-opusencoderconfig-frameduration">frameDuration</a><span>, in § 5.1</span>
783795
<li><a href="#dom-opusbitstreamformat-ogg">"ogg"</a><span>, in § 5.2</span>
784796
<li><a href="#dom-opusbitstreamformat-ogg">ogg</a><span>, in § 5.2</span>
785797
<li><a href="#dom-opusbitstreamformat-opus">"opus"</a><span>, in § 5.2</span>
@@ -804,7 +816,7 @@ <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="c
804816
<a href="https://w3c.github.io/webcodecs/#dictdef-audioencoderconfig">https://w3c.github.io/webcodecs/#dictdef-audioencoderconfig</a><b>Referenced in:</b>
805817
<ul>
806818
<li><a href="#ref-for-dictdef-audioencoderconfig">Unnumbered Section</a>
807-
<li><a href="#ref-for-dictdef-audioencoderconfig①">5. AudiEncoderConfig extensions</a>
819+
<li><a href="#ref-for-dictdef-audioencoderconfig①">5. AudioEncoderConfig extensions</a>
808820
</ul>
809821
</aside>
810822
<aside class="dfn-panel" data-for="term-for-encodedaudiochunk">
@@ -813,7 +825,7 @@ <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="c
813825
<li><a href="#ref-for-encodedaudiochunk">Unnumbered Section</a> <a href="#ref-for-encodedaudiochunk①">(2)</a>
814826
<li><a href="#ref-for-encodedaudiochunk②">2. EncodedAudioChunk data</a> <a href="#ref-for-encodedaudiochunk③">(2)</a> <a href="#ref-for-encodedaudiochunk④">(3)</a>
815827
<li><a href="#ref-for-encodedaudiochunk⑤">4. EncodedAudioChunk type</a>
816-
<li><a href="#ref-for-encodedaudiochunk⑥">5.1. OpusEncoderConfig</a>
828+
<li><a href="#ref-for-encodedaudiochunk⑥">5.1. OpusEncoderConfig</a> <a href="#ref-for-encodedaudiochunk⑦">(2)</a>
817829
</ul>
818830
</aside>
819831
<aside class="dfn-panel" data-for="term-for-dom-encodedaudiochunk-internal-data-slot">
@@ -835,6 +847,18 @@ <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="c
835847
<li><a href="#ref-for-dom-encodedaudiochunktype-key">4. EncodedAudioChunk type</a>
836848
</ul>
837849
</aside>
850+
<aside class="dfn-panel" data-for="term-for-EnforceRange">
851+
<a href="https://webidl.spec.whatwg.org/#EnforceRange">https://webidl.spec.whatwg.org/#EnforceRange</a><b>Referenced in:</b>
852+
<ul>
853+
<li><a href="#ref-for-EnforceRange">5.1. OpusEncoderConfig</a>
854+
</ul>
855+
</aside>
856+
<aside class="dfn-panel" data-for="term-for-idl-unsigned-long">
857+
<a href="https://webidl.spec.whatwg.org/#idl-unsigned-long">https://webidl.spec.whatwg.org/#idl-unsigned-long</a><b>Referenced in:</b>
858+
<ul>
859+
<li><a href="#ref-for-idl-unsigned-long">5.1. OpusEncoderConfig</a> <a href="#ref-for-idl-unsigned-long①">(2)</a>
860+
</ul>
861+
</aside>
838862
<h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span class="content">Terms defined by reference</span><a class="self-link" href="#index-defined-elsewhere"></a></h3>
839863
<ul class="index">
840864
<li>
@@ -847,6 +871,12 @@ <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span cla
847871
<li><span class="dfn-paneled" id="term-for-dom-encodedaudiochunk-type-slot">[[type]]</span>
848872
<li><span class="dfn-paneled" id="term-for-dom-encodedaudiochunktype-key">key</span>
849873
</ul>
874+
<li>
875+
<a data-link-type="biblio">[WEBIDL]</a> defines the following terms:
876+
<ul>
877+
<li><span class="dfn-paneled" id="term-for-EnforceRange">EnforceRange</span>
878+
<li><span class="dfn-paneled" id="term-for-idl-unsigned-long">unsigned long</span>
879+
</ul>
850880
</ul>
851881
<h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2>
852882
<h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3>
@@ -855,13 +885,17 @@ <h3 class="no-num no-ref heading settled" id="normative"><span class="content">N
855885
<dd>S. Bradner. <a href="https://datatracker.ietf.org/doc/html/rfc2119"><cite>Key words for use in RFCs to Indicate Requirement Levels</cite></a>. March 1997. Best Current Practice. URL: <a href="https://datatracker.ietf.org/doc/html/rfc2119">https://datatracker.ietf.org/doc/html/rfc2119</a>
856886
<dt id="biblio-webcodecs">[WEBCODECS]
857887
<dd>Chris Cunningham; Paul Adenot; Bernard Aboba. <a href="https://w3c.github.io/webcodecs/"><cite>WebCodecs</cite></a>. URL: <a href="https://w3c.github.io/webcodecs/">https://w3c.github.io/webcodecs/</a>
888+
<dt id="biblio-webidl">[WEBIDL]
889+
<dd>Edgar Chen; Timothy Gu. <a href="https://webidl.spec.whatwg.org/"><cite>Web IDL Standard</cite></a>. Living Standard. URL: <a href="https://webidl.spec.whatwg.org/">https://webidl.spec.whatwg.org/</a>
858890
</dl>
859891
<h3 class="no-num no-ref heading settled" id="informative"><span class="content">Informative References</span><a class="self-link" href="#informative"></a></h3>
860892
<dl>
861893
<dt id="biblio-opus">[OPUS]
862894
<dd><a href="https://datatracker.ietf.org/doc/html/rfc6716"><cite>RFC 6716: Definition of the Opus Audio Codec</cite></a>. September 2012. URL: <a href="https://datatracker.ietf.org/doc/html/rfc6716">https://datatracker.ietf.org/doc/html/rfc6716</a>
863895
<dt id="biblio-opus-in-ogg">[OPUS-IN-OGG]
864896
<dd><a href="https://datatracker.ietf.org/doc/html/rfc7845"><cite>RFC 7845: Ogg Encapsulation for the Opus Audio Codec</cite></a>. April 2016. URL: <a href="https://datatracker.ietf.org/doc/html/rfc7845">https://datatracker.ietf.org/doc/html/rfc7845</a>
897+
<dt id="biblio-rfc7587">[RFC7587]
898+
<dd>J. Spittka; K. Vos; JM. Valin. <a href="https://www.rfc-editor.org/rfc/rfc7587"><cite>RTP Payload Format for the Opus Speech and Audio Codec</cite></a>. June 2015. Proposed Standard. URL: <a href="https://www.rfc-editor.org/rfc/rfc7587">https://www.rfc-editor.org/rfc/rfc7587</a>
865899
<dt id="biblio-webcodecs-codec-registry">[WEBCODECS-CODEC-REGISTRY]
866900
<dd>Chris Cunningham; Paul Adenot; Bernard Aboba. <a href="https://w3c.github.io/webcodecs/codec_registry.html"><cite>WebCodecs Codec Registry</cite></a>. URL: <a href="https://w3c.github.io/webcodecs/codec_registry.html">https://w3c.github.io/webcodecs/codec_registry.html</a>
867901
</dl>
@@ -873,6 +907,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
873907

874908
<c- b>dictionary</c-> <a href="#dictdef-opusencoderconfig"><code><c- g>OpusEncoderConfig</c-></code></a> {
875909
<a data-link-type="idl-name" href="#enumdef-opusbitstreamformat"><c- n>OpusBitstreamFormat</c-></a> <a class="idl-code" data-default="&quot;opus&quot;" data-link-type="dict-member" data-type="OpusBitstreamFormat " href="#dom-opusencoderconfig-format"><c- g>format</c-></a> = "opus";
910+
[<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#EnforceRange"><c- g>EnforceRange</c-></a>] <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long"><c- b>unsigned</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="unsigned long " href="#dom-opusencoderconfig-frameduration"><c- g>frameDuration</c-></a>;
876911
};
877912

878913

@@ -886,13 +921,14 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
886921
<aside class="dfn-panel" data-for="dom-audioencoderconfig-opus">
887922
<b><a href="#dom-audioencoderconfig-opus">#dom-audioencoderconfig-opus</a></b><b>Referenced in:</b>
888923
<ul>
889-
<li><a href="#ref-for-dom-audioencoderconfig-opus">5. AudiEncoderConfig extensions</a>
924+
<li><a href="#ref-for-dom-audioencoderconfig-opus">5. AudioEncoderConfig extensions</a>
890925
</ul>
891926
</aside>
892927
<aside class="dfn-panel" data-for="dictdef-opusencoderconfig">
893928
<b><a href="#dictdef-opusencoderconfig">#dictdef-opusencoderconfig</a></b><b>Referenced in:</b>
894929
<ul>
895-
<li><a href="#ref-for-dictdef-opusencoderconfig">5. AudiEncoderConfig extensions</a> <a href="#ref-for-dictdef-opusencoderconfig①">(2)</a>
930+
<li><a href="#ref-for-dictdef-opusencoderconfig">5. AudioEncoderConfig extensions</a> <a href="#ref-for-dictdef-opusencoderconfig①">(2)</a>
931+
<li><a href="#ref-for-dictdef-opusencoderconfig②">5.1. OpusEncoderConfig</a>
896932
</ul>
897933
</aside>
898934
<aside class="dfn-panel" data-for="dom-opusencoderconfig-format">
@@ -901,6 +937,12 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
901937
<li><a href="#ref-for-dom-opusencoderconfig-format">5.1. OpusEncoderConfig</a>
902938
</ul>
903939
</aside>
940+
<aside class="dfn-panel" data-for="dom-opusencoderconfig-frameduration">
941+
<b><a href="#dom-opusencoderconfig-frameduration">#dom-opusencoderconfig-frameduration</a></b><b>Referenced in:</b>
942+
<ul>
943+
<li><a href="#ref-for-dom-opusencoderconfig-frameduration">5.1. OpusEncoderConfig</a> <a href="#ref-for-dom-opusencoderconfig-frameduration①">(2)</a>
944+
</ul>
945+
</aside>
904946
<aside class="dfn-panel" data-for="enumdef-opusbitstreamformat">
905947
<b><a href="#enumdef-opusbitstreamformat">#enumdef-opusbitstreamformat</a></b><b>Referenced in:</b>
906948
<ul>

0 commit comments

Comments
 (0)