From 4667b6992a738683e4b7d6667b9850ca0ee5fd7b Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Thu, 20 Oct 2016 21:56:24 -0400 Subject: [PATCH] updating update draft --- doc/draft-ietf-codec-opus-update.xml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/doc/draft-ietf-codec-opus-update.xml b/doc/draft-ietf-codec-opus-update.xml index 767f4f98..f4c2e817 100644 --- a/doc/draft-ietf-codec-opus-update.xml +++ b/doc/draft-ietf-codec-opus-update.xml @@ -10,7 +10,7 @@ - Updates to the Opus Audio Codec @@ -47,7 +47,7 @@ - + This document addresses minor issues that were found in the specification @@ -276,6 +276,26 @@ silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) ); +
+ On extreme bit-streams, it is possible for log-domain band energy levels + to exceed the maximum single-precision floating point value once converted + to a linear scale. This would later cause the decoded values to be NaN, + possibly causing problems in the software using the PCM values. This can be + avoided with the following patch to line 552 of celt/quant_bands.c: + +
+nbEBands], + SHL16((opus_val16)eMeans[i],6)); ++ lg = MIN32(QCONST32(32.f, 16), lg); + eBands[i+c*m->nbEBands] = PSHR32(celt_exp2(lg),4); + } + for (;inbEBands;i++) +]]> +
+
+
When encoding in hybrid mode at low bitrate, we sometimes only have enough bits to code a single CELT band (8 - 9.6 kHz). When that happens,