Skip to content
Snippets Groups Projects
Verified Commit 047c11b5 authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

Update links, fix bits, add security considerations

parent a1b050ba
No related branches found
No related tags found
No related merge requests found
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
<?rfc inline="yes"?> <?rfc inline="yes"?>
<?rfc compact="yes"?> <?rfc compact="yes"?>
<?rfc subcompact="no"?> <?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-codec-opus-update-06" <rfc category="std" docName="draft-ietf-codec-opus-update-07"
ipr="trust200902"> ipr="trust200902" updates="6716">
<front> <front>
<title abbrev="Opus Update">Updates to the Opus Audio Codec</title> <title abbrev="Opus Update">Updates to the Opus Audio Codec</title>
...@@ -47,11 +47,11 @@ ...@@ -47,11 +47,11 @@
<date day="19" month="June" year="2017" /> <date day="16" month="July" year="2017" />
<abstract> <abstract>
<t>This document addresses minor issues that were found in the specification <t>This document addresses minor issues that were found in the specification
of the Opus audio codec in <xref target="RFC6716">RFC 6716</xref>.</t> of the Opus audio codec in RFC 6716.</t>
</abstract> </abstract>
</front> </front>
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
implementation of the Opus codec that serves as the specification in implementation of the Opus codec that serves as the specification in
<xref target="RFC6716">RFC 6716</xref>. Only issues affecting the decoder are <xref target="RFC6716">RFC 6716</xref>. Only issues affecting the decoder are
listed here. An up-to-date implementation of the Opus encoder can be found at listed here. An up-to-date implementation of the Opus encoder can be found at
https://opus-codec.org/.</t> <eref target="https://opus-codec.org/"/>.</t>
<t> <t>
Some of the changes in this document update normative behaviour in a way that requires Some of the changes in this document update normative behaviour in a way that requires
new test vectors. The English text of the specification is unaffected, only new test vectors. The English text of the specification is unaffected, only
...@@ -75,8 +75,7 @@ ...@@ -75,8 +75,7 @@
at the end of a line and the white space at the beginning at the end of a line and the white space at the beginning
of the following line are not part of the patch. A properly formatted patch of the following line are not part of the patch. A properly formatted patch
including all changes is available at including all changes is available at
<eref target="https://jmvalin.ca/misc_stuff/opus_update.patch"/>. (EDITOR: <eref target="https://www.ietf.org/proceedings/98/slides/materials-98-codec-opus-update-00.patch"/>.
change to an ietf.org link when ready)
</t> </t>
</section> </section>
...@@ -96,6 +95,7 @@ ...@@ -96,6 +95,7 @@
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
for( n = 0; n < DECODER_NUM_CHANNELS; n++ ) { for( n = 0; n < DECODER_NUM_CHANNELS; n++ ) {
ret = silk_init_decoder( &channel_state[ n ] ); ret = silk_init_decoder( &channel_state[ n ] );
} }
...@@ -106,6 +106,7 @@ ...@@ -106,6 +106,7 @@
return ret; return ret;
} }
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
...@@ -123,6 +124,7 @@ ...@@ -123,6 +124,7 @@
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
/* Padding flag is bit 6 */ /* Padding flag is bit 6 */
if (ch&0x40) if (ch&0x40)
{ {
...@@ -138,6 +140,7 @@ ...@@ -138,6 +140,7 @@
} while (p==255); } while (p==255);
- len -= padding; - len -= padding;
} }
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
<t>This packet parsing issue is limited to reading memory up <t>This packet parsing issue is limited to reading memory up
...@@ -174,6 +177,7 @@ ...@@ -174,6 +177,7 @@
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
) )
{ {
silk_resampler_state_struct *S = \ silk_resampler_state_struct *S = \
...@@ -226,6 +230,7 @@ RESAMPLER_ORDER_FIR_12 * sizeof( opus_int32 ) ); ...@@ -226,6 +230,7 @@ RESAMPLER_ORDER_FIR_12 * sizeof( opus_int32 ) );
+ silk_memcpy( S->sFIR, &buf[ nSamplesIn << 1 ], \ + silk_memcpy( S->sFIR, &buf[ nSamplesIn << 1 ], \
RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) ); RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
} }
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
</section> </section>
...@@ -240,6 +245,7 @@ RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) ); ...@@ -240,6 +245,7 @@ RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
/* Update AR coefficient */ /* Update AR coefficient */
for( n = 0; n < k; n++ ) { for( n = 0; n < k; n++ ) {
- tmp_QA = Aold_QA[ n ] - MUL32_FRAC_Q( \ - tmp_QA = Aold_QA[ n ] - MUL32_FRAC_Q( \
...@@ -255,6 +261,7 @@ rc_mult2 ), mult2Q); ...@@ -255,6 +261,7 @@ rc_mult2 ), mult2Q);
+ } + }
+ Anew_QA[ n ] = ( opus_int32 )tmp64; + Anew_QA[ n ] = ( opus_int32 )tmp64;
} }
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
</section> </section>
...@@ -269,6 +276,7 @@ rc_mult2 ), mult2Q); ...@@ -269,6 +276,7 @@ rc_mult2 ), mult2Q);
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
/* Keep delta_min distance between the NLSFs */ /* Keep delta_min distance between the NLSFs */
for( i = 1; i < L; i++ ) for( i = 1; i < L; i++ )
- NLSF_Q15[i] = silk_max_int( NLSF_Q15[i], \ - NLSF_Q15[i] = silk_max_int( NLSF_Q15[i], \
...@@ -277,6 +285,7 @@ NLSF_Q15[i-1] + NDeltaMin_Q15[i] ); ...@@ -277,6 +285,7 @@ NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) ); silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) );
/* Last NLSF should be no higher than 1 - NDeltaMin[L] */ /* Last NLSF should be no higher than 1 - NDeltaMin[L] */
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
...@@ -291,6 +300,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) ); ...@@ -291,6 +300,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) );
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
{ {
opus_val16 lg = ADD16(oldEBands[i+c*m->nbEBands], opus_val16 lg = ADD16(oldEBands[i+c*m->nbEBands],
SHL16((opus_val16)eMeans[i],6)); SHL16((opus_val16)eMeans[i],6));
...@@ -298,6 +308,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) ); ...@@ -298,6 +308,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) );
eBands[i+c*m->nbEBands] = PSHR32(celt_exp2(lg),4); eBands[i+c*m->nbEBands] = PSHR32(celt_exp2(lg),4);
} }
for (;i<m->nbEBands;i++) for (;i<m->nbEBands;i++)
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
</section> </section>
...@@ -319,6 +330,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) ); ...@@ -319,6 +330,7 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) );
</t> </t>
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
b = 0; b = 0;
} }
...@@ -347,6 +359,7 @@ n2-n1); ...@@ -347,6 +359,7 @@ n2-n1);
tf_change = tf_res[i]; tf_change = tf_res[i];
if (i>=m->effEBands) if (i>=m->effEBands)
{ {
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
...@@ -356,6 +369,7 @@ n2-n1); ...@@ -356,6 +369,7 @@ n2-n1);
<figure> <figure>
<artwork><![CDATA[ <artwork><![CDATA[
<CODE BEGINS>
fold_start = lowband_offset; fold_start = lowband_offset;
while(M*eBands[--fold_start] > effective_lowband); while(M*eBands[--fold_start] > effective_lowband);
fold_end = lowband_offset-1; fold_end = lowband_offset-1;
...@@ -366,6 +380,7 @@ effective_lowband+N); ...@@ -366,6 +380,7 @@ effective_lowband+N);
fold_i = fold_start; do { fold_i = fold_start; do {
x_cm |= collapse_masks[fold_i*C+0]; x_cm |= collapse_masks[fold_i*C+0];
<CODE ENDS>
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
...@@ -408,8 +423,13 @@ effective_lowband+N); ...@@ -408,8 +423,13 @@ effective_lowband+N);
SHOULD be based on the new test vectors rather than the old ones. SHOULD be based on the new test vectors rather than the old ones.
</t> </t>
<t>The new test vectors are located at <t>The new test vectors are located at
<eref target="https://jmvalin.ca/misc_stuff/opus_newvectors.tar.gz"/>. (EDITOR: <eref target="https://www.ietf.org/proceedings/98/slides/materials-98-codec-opus-newvectors-00.tar.gz"/>.
change to an ietf.org link when ready) </t>
</section>
<section anchor="security" title="Security Considerations">
<t>This document adds no new security considerations on top of
<xref target="RFC6716">RFC 6716</xref>.
</t> </t>
</section> </section>
...@@ -428,7 +448,7 @@ effective_lowband+N); ...@@ -428,7 +448,7 @@ effective_lowband+N);
</middle> </middle>
<back> <back>
<references title="References"> <references title="Normative References">
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6716.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6716.xml"?>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment