libvorbis: Sync with upstream 1.3.7
Fixes various bugs, including several ones with security relevance. Changes: https://github.com/xiph/vorbis/releases/tag/v1.3.7
This commit is contained in:
parent
42f8bfaff0
commit
28ad2e8c72
71 changed files with 136 additions and 114 deletions
26
thirdparty/libvorbis/psy.c
vendored
26
thirdparty/libvorbis/psy.c
vendored
|
|
@ -6,7 +6,7 @@
|
|||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* by the Xiph.Org Foundation https://xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
|
|
@ -599,11 +599,12 @@ static void bark_noise_hybridmp(int n,const long *b,
|
|||
XY[i] = tXY;
|
||||
}
|
||||
|
||||
for (i = 0, x = 0.f;; i++, x += 1.f) {
|
||||
for (i = 0, x = 0.f; i < n; i++, x += 1.f) {
|
||||
|
||||
lo = b[i] >> 16;
|
||||
if( lo>=0 ) break;
|
||||
hi = b[i] & 0xffff;
|
||||
if( lo>=0 || -lo>=n ) break;
|
||||
if( hi>=n ) break;
|
||||
|
||||
tN = N[hi] + N[-lo];
|
||||
tX = X[hi] - X[-lo];
|
||||
|
|
@ -615,17 +616,17 @@ static void bark_noise_hybridmp(int n,const long *b,
|
|||
B = tN * tXY - tX * tY;
|
||||
D = tN * tXX - tX * tX;
|
||||
R = (A + x * B) / D;
|
||||
if (R < 0.f)
|
||||
R = 0.f;
|
||||
if (R < 0.f) R = 0.f;
|
||||
|
||||
noise[i] = R - offset;
|
||||
}
|
||||
|
||||
for ( ;; i++, x += 1.f) {
|
||||
for ( ; i < n; i++, x += 1.f) {
|
||||
|
||||
lo = b[i] >> 16;
|
||||
hi = b[i] & 0xffff;
|
||||
if(hi>=n)break;
|
||||
if( lo<0 || lo>=n ) break;
|
||||
if( hi>=n ) break;
|
||||
|
||||
tN = N[hi] - N[lo];
|
||||
tX = X[hi] - X[lo];
|
||||
|
|
@ -641,6 +642,7 @@ static void bark_noise_hybridmp(int n,const long *b,
|
|||
|
||||
noise[i] = R - offset;
|
||||
}
|
||||
|
||||
for ( ; i < n; i++, x += 1.f) {
|
||||
|
||||
R = (A + x * B) / D;
|
||||
|
|
@ -651,10 +653,11 @@ static void bark_noise_hybridmp(int n,const long *b,
|
|||
|
||||
if (fixed <= 0) return;
|
||||
|
||||
for (i = 0, x = 0.f;; i++, x += 1.f) {
|
||||
for (i = 0, x = 0.f; i < n; i++, x += 1.f) {
|
||||
hi = i + fixed / 2;
|
||||
lo = hi - fixed;
|
||||
if(lo>=0)break;
|
||||
if ( hi>=n ) break;
|
||||
if ( lo>=0 ) break;
|
||||
|
||||
tN = N[hi] + N[-lo];
|
||||
tX = X[hi] - X[-lo];
|
||||
|
|
@ -670,11 +673,12 @@ static void bark_noise_hybridmp(int n,const long *b,
|
|||
|
||||
if (R - offset < noise[i]) noise[i] = R - offset;
|
||||
}
|
||||
for ( ;; i++, x += 1.f) {
|
||||
for ( ; i < n; i++, x += 1.f) {
|
||||
|
||||
hi = i + fixed / 2;
|
||||
lo = hi - fixed;
|
||||
if(hi>=n)break;
|
||||
if ( hi>=n ) break;
|
||||
if ( lo<0 ) break;
|
||||
|
||||
tN = N[hi] - N[lo];
|
||||
tX = X[hi] - X[lo];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue