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:
Rémi Verschelde 2021-11-19 14:08:06 +01:00
parent 42f8bfaff0
commit 28ad2e8c72
No known key found for this signature in database
GPG key ID: C3336907360768E1
71 changed files with 136 additions and 114 deletions

View file

@ -279,14 +279,14 @@ on top of the 1.1.1 source (not included in any stable release yet).
## libvorbis ## libvorbis
- Upstream: https://www.xiph.org/vorbis - Upstream: https://www.xiph.org/vorbis
- Version: 1.3.6 (2018) - Version: 1.3.7 (0657aee69dec8508a0011f47f3b69d7538e9d262, 2020)
- License: BSD-3-Clause - License: BSD-3-Clause
Files extracted from upstream source: Files extracted from upstream source:
- `src/*` except from: `lookups.pl`, `Makefile.*` - `lib/*` except from: `lookups.pl`, `Makefile.*`
- `include/vorbis/*.h` as vorbis/ - `include/vorbis/*.h` as `vorbis/`
- COPYING - `COPYING`
## libwebp ## libwebp

View file

@ -1,4 +1,4 @@
Copyright (c) 2002-2018 Xiph.org Foundation Copyright (c) 2002-2020 Xiph.org Foundation
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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/ *
* * * *
******************************************************************** ********************************************************************
* *

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -19,7 +19,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h>
#include <ogg/ogg.h> #include <ogg/ogg.h>
#include "vorbis/codec.h" #include "vorbis/codec.h"
#include "codec_internal.h" #include "codec_internal.h"
@ -30,8 +29,8 @@
#include "misc.h" #include "misc.h"
#include "os.h" #include "os.h"
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.6" #define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.7"
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20180316 (Now 100% fewer shells)" #define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20200704 (Reducing Environment)"
/* helpers */ /* helpers */
static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){ static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){
@ -47,6 +46,10 @@ static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){
} }
} }
static int _v_toupper(int c) {
return (c >= 'a' && c <= 'z') ? (c & ~('a' - 'A')) : c;
}
void vorbis_comment_init(vorbis_comment *vc){ void vorbis_comment_init(vorbis_comment *vc){
memset(vc,0,sizeof(*vc)); memset(vc,0,sizeof(*vc));
} }
@ -78,7 +81,7 @@ void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *con
static int tagcompare(const char *s1, const char *s2, int n){ static int tagcompare(const char *s1, const char *s2, int n){
int c=0; int c=0;
while(c < n){ while(c < n){
if(toupper(s1[c]) != toupper(s2[c])) if(_v_toupper(s1[c]) != _v_toupper(s2[c]))
return !0; return !0;
c++; c++;
} }
@ -203,6 +206,7 @@ void vorbis_info_clear(vorbis_info *vi){
static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
codec_setup_info *ci=vi->codec_setup; codec_setup_info *ci=vi->codec_setup;
int bs;
if(!ci)return(OV_EFAULT); if(!ci)return(OV_EFAULT);
vi->version=oggpack_read(opb,32); vi->version=oggpack_read(opb,32);
@ -215,8 +219,12 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32); vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32);
vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32); vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32);
ci->blocksizes[0]=1<<oggpack_read(opb,4); bs = oggpack_read(opb,4);
ci->blocksizes[1]=1<<oggpack_read(opb,4); if(bs<0)goto err_out;
ci->blocksizes[0]=1<<bs;
bs = oggpack_read(opb,4);
if(bs<0)goto err_out;
ci->blocksizes[1]=1<<bs;
if(vi->rate<1)goto err_out; if(vi->rate<1)goto err_out;
if(vi->channels<1)goto err_out; if(vi->channels<1)goto err_out;

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -15,9 +15,10 @@
The LSP generation code is taken (with minimal modification and a The LSP generation code is taken (with minimal modification and a
few bugfixes) from "On the Computation of the LSP Frequencies" by few bugfixes) from "On the Computation of the LSP Frequencies" by
Joseph Rothweiler (see http://www.rothweiler.us for contact info). Joseph Rothweiler (see http://www.rothweiler.us for contact info).
The paper is available at: The paper is available at:
http://www.myown1.com/joe/lsf https://web.archive.org/web/20110810174000/http://home.myfairpoint.net/vzenxj75/myown1/joe/lsf/index.html
********************************************************************/ ********************************************************************/

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -8,7 +8,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -60,7 +60,7 @@ void *_alloca(size_t size);
# define FAST_HYPOT hypot # define FAST_HYPOT hypot
#endif #endif
#endif #endif /* _V_IFDEFJAIL_H_ */
#ifdef HAVE_ALLOCA_H #ifdef HAVE_ALLOCA_H
# include <alloca.h> # include <alloca.h>
@ -80,7 +80,7 @@ void *_alloca(size_t size);
/* Special i386 GCC implementation */ /* Special i386 GCC implementation */
#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) #if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) && !defined(__SSE2_MATH__)
# define VORBIS_FPU_CONTROL # define VORBIS_FPU_CONTROL
/* both GCC and MSVC are kinda stupid about rounding/casting to int. /* both GCC and MSVC are kinda stupid about rounding/casting to int.
Because of encapsulation constraints (GCC can't see inside the asm Because of encapsulation constraints (GCC can't see inside the asm
@ -119,8 +119,7 @@ static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise,
/* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the /* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the
* 64 bit compiler and doesn't work on arm. */ * 64 bit compiler and doesn't work on arm. */
#if defined(_MSC_VER) && !defined(_WIN64) && \ #if defined(_MSC_VER) && defined(_M_IX86) && !defined(_WIN32_WCE)
!defined(_WIN32_WCE) && !defined(_M_ARM)
# define VORBIS_FPU_CONTROL # define VORBIS_FPU_CONTROL
typedef ogg_int16_t vorbis_fpu_control; typedef ogg_int16_t vorbis_fpu_control;
@ -147,7 +146,7 @@ static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
/* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be /* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be
done safely because all x86_64 CPUs supports SSE2. */ done safely because all x86_64 CPUs supports SSE2. */
#if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__x86_64__)) #if (defined(_MSC_VER) && defined(_M_X64)) || (defined(__GNUC__) && defined (__SSE2_MATH__))
# define VORBIS_FPU_CONTROL # define VORBIS_FPU_CONTROL
typedef ogg_int16_t vorbis_fpu_control; typedef ogg_int16_t vorbis_fpu_control;
@ -174,7 +173,7 @@ static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
typedef int vorbis_fpu_control; typedef int vorbis_fpu_control;
static int vorbis_ftoi(double f){ STIN int vorbis_ftoi(double f){
/* Note: MSVC and GCC (at least on some systems) round towards zero, thus, /* Note: MSVC and GCC (at least on some systems) round towards zero, thus,
the floor() call is required to ensure correct roudning of the floor() call is required to ensure correct roudning of
negative numbers */ negative numbers */

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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; 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; lo = b[i] >> 16;
if( lo>=0 ) break;
hi = b[i] & 0xffff; hi = b[i] & 0xffff;
if( lo>=0 || -lo>=n ) break;
if( hi>=n ) break;
tN = N[hi] + N[-lo]; tN = N[hi] + N[-lo];
tX = X[hi] - X[-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; B = tN * tXY - tX * tY;
D = tN * tXX - tX * tX; D = tN * tXX - tX * tX;
R = (A + x * B) / D; R = (A + x * B) / D;
if (R < 0.f) if (R < 0.f) R = 0.f;
R = 0.f;
noise[i] = R - offset; noise[i] = R - offset;
} }
for ( ;; i++, x += 1.f) { for ( ; i < n; i++, x += 1.f) {
lo = b[i] >> 16; lo = b[i] >> 16;
hi = b[i] & 0xffff; hi = b[i] & 0xffff;
if(hi>=n)break; if( lo<0 || lo>=n ) break;
if( hi>=n ) break;
tN = N[hi] - N[lo]; tN = N[hi] - N[lo];
tX = X[hi] - X[lo]; tX = X[hi] - X[lo];
@ -641,6 +642,7 @@ static void bark_noise_hybridmp(int n,const long *b,
noise[i] = R - offset; noise[i] = R - offset;
} }
for ( ; i < n; i++, x += 1.f) { for ( ; i < n; i++, x += 1.f) {
R = (A + x * B) / D; R = (A + x * B) / D;
@ -651,10 +653,11 @@ static void bark_noise_hybridmp(int n,const long *b,
if (fixed <= 0) return; 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; hi = i + fixed / 2;
lo = hi - fixed; lo = hi - fixed;
if(lo>=0)break; if ( hi>=n ) break;
if ( lo>=0 ) break;
tN = N[hi] + N[-lo]; tN = N[hi] + N[-lo];
tX = X[hi] - X[-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; 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; hi = i + fixed / 2;
lo = hi - fixed; lo = hi - fixed;
if(hi>=n)break; if ( hi>=n ) break;
if ( lo<0 ) break;
tN = N[hi] - N[lo]; tN = N[hi] - N[lo];
tX = X[hi] - X[lo]; tX = X[hi] - X[lo];

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * * 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/ *
* * * *
******************************************************************** ********************************************************************
@ -30,9 +30,6 @@
#include "misc.h" #include "misc.h"
#include "os.h" #include "os.h"
//#define TRAIN_RES 1
//#define TRAIN_RESAUX 1
#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) #if defined(TRAIN_RES) || defined (TRAIN_RESAUX)
#include <stdio.h> #include <stdio.h>
#endif #endif

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -50,7 +50,7 @@ long _float32_pack(float val){
sign=0x80000000; sign=0x80000000;
val= -val; val= -val;
} }
exp= floor(log(val)/log(2.f)+.001); //+epsilon exp= floor(log(val)/log(2.f)+.001); /* +epsilon */
mant=rint(ldexp(val,(VQ_FMAN-1)-exp)); mant=rint(ldexp(val,(VQ_FMAN-1)-exp));
exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN; exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN;
@ -62,7 +62,15 @@ float _float32_unpack(long val){
int sign=val&0x80000000; int sign=val&0x80000000;
long exp =(val&0x7fe00000L)>>VQ_FMAN; long exp =(val&0x7fe00000L)>>VQ_FMAN;
if(sign)mant= -mant; if(sign)mant= -mant;
return(ldexp(mant,exp-(VQ_FMAN-1)-VQ_FEXP_BIAS)); exp=exp-(VQ_FMAN-1)-VQ_FEXP_BIAS;
/* clamp excessive exponent values */
if (exp>63){
exp=63;
}
if (exp<-63){
exp=-63;
}
return(ldexp(mant,exp));
} }
/* given a list of word lengths, generate a list of codewords. Works /* given a list of word lengths, generate a list of codewords. Works
@ -294,7 +302,7 @@ int vorbis_book_init_encode(codebook *c,const static_codebook *s){
c->used_entries=s->entries; c->used_entries=s->entries;
c->dim=s->dim; c->dim=s->dim;
c->codelist=_make_words(s->lengthlist,s->entries,0); c->codelist=_make_words(s->lengthlist,s->entries,0);
//c->valuelist=_book_unquantize(s,s->entries,NULL); /* c->valuelist=_book_unquantize(s,s->entries,NULL); */
c->quantvals=_book_maptype1_quantvals(s); c->quantvals=_book_maptype1_quantvals(s);
c->minval=(int)rint(_float32_unpack(s->q_min)); c->minval=(int)rint(_float32_unpack(s->q_min));
c->delta=(int)rint(_float32_unpack(s->q_delta)); c->delta=(int)rint(_float32_unpack(s->q_delta));
@ -573,6 +581,7 @@ void run_test(static_codebook *b,float *comp){
exit(1); exit(1);
} }
} }
free(out);
} }
int main(){ int main(){

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -684,6 +684,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){
highlevel_encode_setup *hi=&ci->hi; highlevel_encode_setup *hi=&ci->hi;
if(ci==NULL)return(OV_EINVAL); if(ci==NULL)return(OV_EINVAL);
if(vi->channels<1||vi->channels>255)return(OV_EINVAL);
if(!hi->impulse_block_p)i0=1; if(!hi->impulse_block_p)i0=1;
/* too low/high an ATH floater is nonsensical, but doesn't break anything */ /* too low/high an ATH floater is nonsensical, but doesn't break anything */
@ -1210,7 +1211,7 @@ int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg){
hi->req, hi->req,
hi->managed, hi->managed,
&new_base); &new_base);
if(!hi->setup)return OV_EIMPL; if(!new_template)return OV_EIMPL;
hi->setup=new_template; hi->setup=new_template;
hi->base_setting=new_base; hi->base_setting=new_base;
vorbis_encode_setup_setting(vi,vi->channels,vi->rate); vorbis_encode_setup_setting(vi,vi->channels,vi->rate);

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************
@ -264,6 +264,10 @@ static ogg_int64_t _get_prev_page_serial(OggVorbis_File *vf, ogg_int64_t begin,
} }
} }
} }
/*We started from the beginning of the stream and found nothing.
This should be impossible unless the contents of the stream changed out
from under us after we read from it.*/
if(!begin&&vf->offset<0)return OV_EBADLINK;
} }
/* we're not interested in the page... just the serialno and granpos. */ /* we're not interested in the page... just the serialno and granpos. */
@ -1230,7 +1234,6 @@ double ov_time_total(OggVorbis_File *vf,int i){
int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){
ogg_stream_state work_os; ogg_stream_state work_os;
int ret;
if(vf->ready_state<OPENED)return(OV_EINVAL); if(vf->ready_state<OPENED)return(OV_EINVAL);
if(!vf->seekable) if(!vf->seekable)
@ -1253,8 +1256,12 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){
vf->current_serialno); /* must set serialno */ vf->current_serialno); /* must set serialno */
vorbis_synthesis_restart(&vf->vd); vorbis_synthesis_restart(&vf->vd);
ret=_seek_helper(vf,pos); if(_seek_helper(vf,pos)) {
if(ret)goto seek_error; /* dump the machine so we're in a known state */
vf->pcm_offset=-1;
_decode_clear(vf);
return OV_EBADLINK;
}
/* we need to make sure the pcm_offset is set, but we don't want to /* we need to make sure the pcm_offset is set, but we don't want to
advance the raw cursor past good packets just to get to the first advance the raw cursor past good packets just to get to the first
@ -1388,13 +1395,6 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){
vf->bittrack=0.f; vf->bittrack=0.f;
vf->samptrack=0.f; vf->samptrack=0.f;
return(0); return(0);
seek_error:
/* dump the machine so we're in a known state */
vf->pcm_offset=-1;
ogg_stream_clear(&work_os);
_decode_clear(vf);
return OV_EBADLINK;
} }
/* Page granularity seek (faster than sample granularity because we /* Page granularity seek (faster than sample granularity because we
@ -1964,6 +1964,7 @@ long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
long samples; long samples;
if(vf->ready_state<OPENED)return(OV_EINVAL); if(vf->ready_state<OPENED)return(OV_EINVAL);
if(word<=0)return(OV_EINVAL);
while(1){ while(1){
if(vf->ready_state==INITSET){ if(vf->ready_state==INITSET){
@ -1989,6 +1990,8 @@ long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
long channels=ov_info(vf,-1)->channels; long channels=ov_info(vf,-1)->channels;
long bytespersample=word * channels; long bytespersample=word * channels;
vorbis_fpu_control fpu; vorbis_fpu_control fpu;
if(channels<1||channels>255)return(OV_EINVAL);
if(samples>length/bytespersample)samples=length/bytespersample; if(samples>length/bytespersample)samples=length/bytespersample;
if(samples <= 0) if(samples <= 0)

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************

View file

@ -6,7 +6,7 @@
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* * * *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.Org Foundation http://www.xiph.org/ * * by the Xiph.Org Foundation https://xiph.org/ *
* * * *
******************************************************************** ********************************************************************