libvorbis: 1.3.5 → 1.3.7 (fixes a bunch of CVE and other small issues)
This commit is contained in:
parent
a7a08647b6
commit
7bcdd1b5d8
71 changed files with 223 additions and 285 deletions
|
@ -1,4 +1,4 @@
|
||||||
Copyright (c) 2002, 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
|
||||||
|
@ -18,11 +18,11 @@ this software without specific prior written permission.
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
|
||||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: single-block PCM analysis mode dispatch
|
function: single-block PCM analysis mode dispatch
|
||||||
last mod: $Id: analysis.c 16226 2009-07-08 06:43:49Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,12 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: libvorbis backend and mapping structures; needed for
|
function: libvorbis backend and mapping structures; needed for
|
||||||
static mode headers
|
static mode headers
|
||||||
last mod: $Id: backends.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bark scale utility
|
function: bark scale utility
|
||||||
last mod: $Id: barkmel.c 19454 2015-03-02 22:39:28Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bitrate tracking and management
|
function: bitrate tracking and management
|
||||||
last mod: $Id: bitrate.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bitrate tracking and management
|
function: bitrate tracking and management
|
||||||
last mod: $Id: bitrate.h 13293 2007-07-24 00:09:47Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data vector blocking, windowing and dis/reassembly
|
function: PCM data vector blocking, windowing and dis/reassembly
|
||||||
last mod: $Id: block.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
Handle windowing, overlap-add, etc of the PCM vectors. This is made
|
Handle windowing, overlap-add, etc of the PCM vectors. This is made
|
||||||
more amusing by Vorbis' current two allowed block sizes.
|
more amusing by Vorbis' current two allowed block sizes.
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
*
|
*
|
||||||
* function: static codebooks for 5.1 surround
|
* function: static codebooks for 5.1 surround
|
||||||
* last modified: $Id: res_books_51.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
*
|
*
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: res_books_stereo.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: floor_books.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: res_books_uncoupled.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: basic codebook pack/unpack/code/decode operations
|
function: basic codebook pack/unpack/code/decode operations
|
||||||
last mod: $Id: codebook.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -391,7 +390,7 @@ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
||||||
t[i] = book->valuelist+entry[i]*book->dim;
|
t[i] = book->valuelist+entry[i]*book->dim;
|
||||||
}
|
}
|
||||||
for(i=0,o=0;i<book->dim;i++,o+=step)
|
for(i=0,o=0;i<book->dim;i++,o+=step)
|
||||||
for (j=0;j<step;j++)
|
for (j=0;o+j<n && j<step;j++)
|
||||||
a[o+j]+=t[j][i];
|
a[o+j]+=t[j][i];
|
||||||
free(entry);
|
free(entry);
|
||||||
free(t);
|
free(t);
|
||||||
|
@ -405,41 +404,12 @@ long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
||||||
int i,j,entry;
|
int i,j,entry;
|
||||||
float *t;
|
float *t;
|
||||||
|
|
||||||
if(book->dim>8){
|
for(i=0;i<n;){
|
||||||
for(i=0;i<n;){
|
entry = decode_packed_entry_number(book,b);
|
||||||
entry = decode_packed_entry_number(book,b);
|
if(entry==-1)return(-1);
|
||||||
if(entry==-1)return(-1);
|
t = book->valuelist+entry*book->dim;
|
||||||
t = book->valuelist+entry*book->dim;
|
for(j=0;i<n && j<book->dim;)
|
||||||
for (j=0;j<book->dim;)
|
a[i++]+=t[j++];
|
||||||
a[i++]+=t[j++];
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
for(i=0;i<n;){
|
|
||||||
entry = decode_packed_entry_number(book,b);
|
|
||||||
if(entry==-1)return(-1);
|
|
||||||
t = book->valuelist+entry*book->dim;
|
|
||||||
j=0;
|
|
||||||
switch((int)book->dim){
|
|
||||||
case 8:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 7:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 6:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 5:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 4:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 3:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 2:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 1:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 0:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
|
@ -477,12 +447,13 @@ long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch,
|
||||||
long i,j,entry;
|
long i,j,entry;
|
||||||
int chptr=0;
|
int chptr=0;
|
||||||
if(book->used_entries>0){
|
if(book->used_entries>0){
|
||||||
for(i=offset/ch;i<(offset+n)/ch;){
|
int m=(offset+n)/ch;
|
||||||
|
for(i=offset/ch;i<m;){
|
||||||
entry = decode_packed_entry_number(book,b);
|
entry = decode_packed_entry_number(book,b);
|
||||||
if(entry==-1)return(-1);
|
if(entry==-1)return(-1);
|
||||||
{
|
{
|
||||||
const float *t = book->valuelist+entry*book->dim;
|
const float *t = book->valuelist+entry*book->dim;
|
||||||
for (j=0;j<book->dim;j++){
|
for (j=0;i<m && j<book->dim;j++){
|
||||||
a[chptr++][i]+=t[j];
|
a[chptr++][i]+=t[j];
|
||||||
if(chptr==ch){
|
if(chptr==ch){
|
||||||
chptr=0;
|
chptr=0;
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: basic shared codebook operations
|
function: basic shared codebook operations
|
||||||
last mod: $Id: codebook.h 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: libvorbis codec headers
|
function: libvorbis codec headers
|
||||||
last mod: $Id: codec_internal.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data envelope analysis
|
function: PCM data envelope analysis
|
||||||
last mod: $Id: envelope.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data envelope analysis and manipulation
|
function: PCM data envelope analysis and manipulation
|
||||||
last mod: $Id: envelope.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: floor backend 0 implementation
|
function: floor backend 0 implementation
|
||||||
last mod: $Id: floor0.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: floor backend 1 implementation
|
function: floor backend 1 implementation
|
||||||
last mod: $Id: floor1.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: highlevel encoder setup struct separated out for vorbisenc clarity
|
function: highlevel encoder setup struct separated out for vorbisenc clarity
|
||||||
last mod: $Id: highlevel.h 17195 2010-05-05 21:49:51Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: maintain the info structure, info <-> header packets
|
function: maintain the info structure, info <-> header packets
|
||||||
last mod: $Id: info.c 19441 2015-01-21 01:17:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -20,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"
|
||||||
|
@ -31,8 +29,8 @@
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.5"
|
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.7"
|
||||||
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)"
|
#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){
|
||||||
|
@ -48,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));
|
||||||
}
|
}
|
||||||
|
@ -65,12 +67,13 @@ void vorbis_comment_add(vorbis_comment *vc,const char *comment){
|
||||||
}
|
}
|
||||||
|
|
||||||
void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){
|
void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){
|
||||||
char *comment=malloc(strlen(tag)+strlen(contents)+2); /* +2 for = and \0 */
|
/* Length for key and value +2 for = and \0 */
|
||||||
|
char *comment=_ogg_malloc(strlen(tag)+strlen(contents)+2);
|
||||||
strcpy(comment, tag);
|
strcpy(comment, tag);
|
||||||
strcat(comment, "=");
|
strcat(comment, "=");
|
||||||
strcat(comment, contents);
|
strcat(comment, contents);
|
||||||
vorbis_comment_add(vc, comment);
|
vorbis_comment_add(vc, comment);
|
||||||
free(comment);
|
_ogg_free(comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is more or less the same as strncasecmp - but that doesn't exist
|
/* This is more or less the same as strncasecmp - but that doesn't exist
|
||||||
|
@ -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++;
|
||||||
}
|
}
|
||||||
|
@ -89,29 +92,30 @@ char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){
|
||||||
long i;
|
long i;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
||||||
char *fulltag = malloc(taglen+ 1);
|
char *fulltag = _ogg_malloc(taglen+1);
|
||||||
|
|
||||||
strcpy(fulltag, tag);
|
strcpy(fulltag, tag);
|
||||||
strcat(fulltag, "=");
|
strcat(fulltag, "=");
|
||||||
|
|
||||||
for(i=0;i<vc->comments;i++){
|
for(i=0;i<vc->comments;i++){
|
||||||
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
|
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
|
||||||
if(count == found){
|
if(count == found) {
|
||||||
free(fulltag);
|
|
||||||
/* We return a pointer to the data, not a copy */
|
/* We return a pointer to the data, not a copy */
|
||||||
|
_ogg_free(fulltag);
|
||||||
return vc->user_comments[i] + taglen;
|
return vc->user_comments[i] + taglen;
|
||||||
}else
|
} else {
|
||||||
found++;
|
found++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(fulltag);
|
_ogg_free(fulltag);
|
||||||
return NULL; /* didn't find anything */
|
return NULL; /* didn't find anything */
|
||||||
}
|
}
|
||||||
|
|
||||||
int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
||||||
int i,count=0;
|
int i,count=0;
|
||||||
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
||||||
char *fulltag = malloc(taglen+1);
|
char *fulltag = _ogg_malloc(taglen+1);
|
||||||
strcpy(fulltag,tag);
|
strcpy(fulltag,tag);
|
||||||
strcat(fulltag, "=");
|
strcat(fulltag, "=");
|
||||||
|
|
||||||
|
@ -119,7 +123,8 @@ int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
||||||
if(!tagcompare(vc->user_comments[i], fulltag, taglen))
|
if(!tagcompare(vc->user_comments[i], fulltag, taglen))
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
free(fulltag);
|
|
||||||
|
_ogg_free(fulltag);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,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);
|
||||||
|
@ -209,12 +215,16 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
|
||||||
vi->channels=oggpack_read(opb,8);
|
vi->channels=oggpack_read(opb,8);
|
||||||
vi->rate=oggpack_read(opb,32);
|
vi->rate=oggpack_read(opb,32);
|
||||||
|
|
||||||
vi->bitrate_upper=oggpack_read(opb,32);
|
vi->bitrate_upper=(ogg_int32_t)oggpack_read(opb,32);
|
||||||
vi->bitrate_nominal=oggpack_read(opb,32);
|
vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32);
|
||||||
vi->bitrate_lower=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;
|
||||||
|
@ -586,7 +596,8 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
||||||
oggpack_buffer opb;
|
oggpack_buffer opb;
|
||||||
private_state *b=v->backend_state;
|
private_state *b=v->backend_state;
|
||||||
|
|
||||||
if(!b||vi->channels<=0){
|
if(!b||vi->channels<=0||vi->channels>256){
|
||||||
|
b = NULL;
|
||||||
ret=OV_EFAULT;
|
ret=OV_EFAULT;
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
|
@ -645,7 +656,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
||||||
memset(op_code,0,sizeof(*op_code));
|
memset(op_code,0,sizeof(*op_code));
|
||||||
|
|
||||||
if(b){
|
if(b){
|
||||||
oggpack_writeclear(&opb);
|
if(vi->channels>0)oggpack_writeclear(&opb);
|
||||||
if(b->header)_ogg_free(b->header);
|
if(b->header)_ogg_free(b->header);
|
||||||
if(b->header1)_ogg_free(b->header1);
|
if(b->header1)_ogg_free(b->header1);
|
||||||
if(b->header2)_ogg_free(b->header2);
|
if(b->header2)_ogg_free(b->header2);
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup based functions
|
function: lookup based functions
|
||||||
last mod: $Id: lookup.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup based functions
|
function: lookup based functions
|
||||||
last mod: $Id: lookup.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup data; generated by lookups.pl; edit there
|
function: lookup data; generated by lookups.pl; edit there
|
||||||
last mod: $Id: lookup_data.h 16037 2009-05-26 21:10:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LPC low level routines
|
function: LPC low level routines
|
||||||
last mod: $Id: lpc.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LPC low level routines
|
function: LPC low level routines
|
||||||
last mod: $Id: lpc.h 16037 2009-05-26 21:10:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,19 +6,19 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LSP (also called LSF) conversion routines
|
function: LSP (also called LSF) conversion routines
|
||||||
last mod: $Id: lsp.c 19453 2015-03-02 22:35:34Z xiphmont $
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LSP (also called LSF) conversion routines
|
function: LSP (also called LSF) conversion routines
|
||||||
last mod: $Id: lsp.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: channel mapping 0 implementation
|
function: channel mapping 0 implementation
|
||||||
last mod: $Id: mapping0.c 19441 2015-01-21 01:17:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -93,7 +92,6 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb)
|
||||||
int i,b;
|
int i,b;
|
||||||
vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info));
|
vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info));
|
||||||
codec_setup_info *ci=vi->codec_setup;
|
codec_setup_info *ci=vi->codec_setup;
|
||||||
memset(info,0,sizeof(*info));
|
|
||||||
if(vi->channels<=0)goto err_out;
|
if(vi->channels<=0)goto err_out;
|
||||||
|
|
||||||
b=oggpack_read(opb,1);
|
b=oggpack_read(opb,1);
|
||||||
|
@ -717,6 +715,7 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_info_mapping *l){
|
||||||
|
|
||||||
float **pcmbundle=malloc(sizeof(*pcmbundle)*vi->channels);
|
float **pcmbundle=malloc(sizeof(*pcmbundle)*vi->channels);
|
||||||
int *zerobundle=malloc(sizeof(*zerobundle)*vi->channels);
|
int *zerobundle=malloc(sizeof(*zerobundle)*vi->channels);
|
||||||
|
|
||||||
int *nonzero =malloc(sizeof(*nonzero)*vi->channels);
|
int *nonzero =malloc(sizeof(*nonzero)*vi->channels);
|
||||||
void **floormemo=malloc(sizeof(*floormemo)*vi->channels);
|
void **floormemo=malloc(sizeof(*floormemo)*vi->channels);
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: masking curve data for psychoacoustics
|
function: masking curve data for psychoacoustics
|
||||||
last mod: $Id: masking.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,12 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: normalized modified discrete cosine transform
|
function: normalized modified discrete cosine transform
|
||||||
power of two length transform only [64 <= n ]
|
power of two length transform only [64 <= n ]
|
||||||
last mod: $Id: mdct.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
Original algorithm adapted long ago from _The use of multirate filter
|
Original algorithm adapted long ago from _The use of multirate filter
|
||||||
banks for coding of high quality digital audio_, by T. Sporer,
|
banks for coding of high quality digital audio_, by T. Sporer,
|
||||||
|
@ -495,8 +494,7 @@ void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){
|
||||||
int n2=n>>1;
|
int n2=n>>1;
|
||||||
int n4=n>>2;
|
int n4=n>>2;
|
||||||
int n8=n>>3;
|
int n8=n>>3;
|
||||||
DATA_TYPE *wbuf=malloc(n*sizeof(DATA_TYPE)); /* forward needs working space */
|
DATA_TYPE *w=malloc(n*sizeof(*w)); /* forward needs working space */
|
||||||
DATA_TYPE *w=wbuf;
|
|
||||||
DATA_TYPE *w2=w+n2;
|
DATA_TYPE *w2=w+n2;
|
||||||
|
|
||||||
/* rotate */
|
/* rotate */
|
||||||
|
@ -561,5 +559,5 @@ void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){
|
||||||
w+=2;
|
w+=2;
|
||||||
T+=2;
|
T+=2;
|
||||||
}
|
}
|
||||||
free(wbuf);
|
free(w);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: modified discrete cosine transform prototypes
|
function: modified discrete cosine transform prototypes
|
||||||
last mod: $Id: mdct.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: miscellaneous prototypes
|
function: miscellaneous prototypes
|
||||||
last mod: $Id: misc.h 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: key floor settings
|
function: key floor settings
|
||||||
last mod: $Id: floor_all.h 17050 2010-03-26 01:34:42Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 11kHz settings
|
function: 11kHz settings
|
||||||
last mod: $Id: psych_11.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 16kHz settings
|
function: 16kHz settings
|
||||||
last mod: $Id: psych_16.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: key psychoacoustic settings for 44.1/48kHz
|
function: key psychoacoustic settings for 44.1/48kHz
|
||||||
last mod: $Id: psych_44.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 8kHz psychoacoustic settings
|
function: 8kHz psychoacoustic settings
|
||||||
last mod: $Id: psych_8.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel residue templates 16/22kHz
|
function: toplevel residue templates 16/22kHz
|
||||||
last mod: $Id: residue_16.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel residue templates for 32/44.1/48kHz
|
function: toplevel residue templates for 32/44.1/48kHz
|
||||||
last mod: $Id: residue_44.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel residue templates for 32/44.1/48kHz uncoupled
|
function: toplevel residue templates for 32/44.1/48kHz uncoupled
|
||||||
last mod: $Id: residue_44p51.h 19013 2013-11-12 04:04:50Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel residue templates for 32/44.1/48kHz uncoupled
|
function: toplevel residue templates for 32/44.1/48kHz uncoupled
|
||||||
last mod: $Id: residue_44u.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel residue templates 8/11kHz
|
function: toplevel residue templates 8/11kHz
|
||||||
last mod: $Id: residue_8.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 11kHz settings
|
function: 11kHz settings
|
||||||
last mod: $Id: setup_11.h 16894 2010-02-12 20:32:12Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 16kHz settings
|
function: 16kHz settings
|
||||||
last mod: $Id: setup_16.h 16894 2010-02-12 20:32:12Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 22kHz settings
|
function: 22kHz settings
|
||||||
last mod: $Id: setup_22.h 17026 2010-03-25 05:00:27Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel settings for 32kHz
|
function: toplevel settings for 32kHz
|
||||||
last mod: $Id: setup_32.h 16894 2010-02-12 20:32:12Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel settings for 44.1/48kHz
|
function: toplevel settings for 44.1/48kHz
|
||||||
last mod: $Id: setup_44.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel settings for 44.1/48kHz 5.1 surround modes
|
function: toplevel settings for 44.1/48kHz 5.1 surround modes
|
||||||
last mod: $Id: setup_44p51.h 19013 2013-11-12 04:04:50Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: toplevel settings for 44.1/48kHz uncoupled modes
|
function: toplevel settings for 44.1/48kHz uncoupled modes
|
||||||
last mod: $Id: setup_44u.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: 8kHz settings
|
function: 8kHz settings
|
||||||
last mod: $Id: setup_8.h 16894 2010-02-12 20:32:12Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: catch-all toplevel settings for q modes only
|
function: catch-all toplevel settings for q modes only
|
||||||
last mod: $Id: setup_X.h 16894 2010-02-12 20:32:12Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: #ifdef jail to whip a few platforms into the UNIX ideal.
|
function: #ifdef jail to whip a few platforms into the UNIX ideal.
|
||||||
last mod: $Id: os.h 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -31,7 +30,7 @@
|
||||||
|
|
||||||
# ifdef __GNUC__
|
# ifdef __GNUC__
|
||||||
# define STIN static __inline__
|
# define STIN static __inline__
|
||||||
# elif _WIN32
|
# elif defined(_WIN32)
|
||||||
# define STIN static __inline
|
# define STIN static __inline
|
||||||
# else
|
# else
|
||||||
# define STIN static
|
# define STIN static
|
||||||
|
@ -65,7 +64,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>
|
||||||
|
@ -85,7 +84,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
|
||||||
|
@ -124,8 +123,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;
|
||||||
|
@ -152,7 +150,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;
|
||||||
|
@ -179,7 +177,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 */
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: psychoacoustics not including preecho
|
function: psychoacoustics not including preecho
|
||||||
last mod: $Id: psy.c 18077 2011-09-02 02:49:00Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -602,11 +601,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];
|
||||||
|
@ -618,17 +618,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];
|
||||||
|
@ -644,6 +644,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;
|
||||||
|
@ -657,10 +658,11 @@ static void bark_noise_hybridmp(int n,const long *b,
|
||||||
return;
|
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];
|
||||||
|
@ -676,11 +678,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];
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: random psychoacoustics (not including preecho)
|
function: random psychoacoustics (not including preecho)
|
||||||
last mod: $Id: psy.h 16946 2010-03-03 16:12:40Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,12 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: simple utility that runs audio through the psychoacoustics
|
function: simple utility that runs audio through the psychoacoustics
|
||||||
without encoding
|
without encoding
|
||||||
last mod: $Id: psytune.c 16037 2009-05-26 21:10:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -41,11 +40,11 @@
|
||||||
static vorbis_info_psy_global _psy_set0G={
|
static vorbis_info_psy_global _psy_set0G={
|
||||||
0, /* decaydBpms */
|
0, /* decaydBpms */
|
||||||
8, /* lines per eighth octave */
|
8, /* lines per eighth octave */
|
||||||
|
|
||||||
/* thresh sample period, preecho clamp trigger threshhold, range, minenergy */
|
/* thresh sample period, preecho clamp trigger threshhold, range, minenergy */
|
||||||
256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
|
256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
|
||||||
-6.f,
|
-6.f,
|
||||||
|
|
||||||
0,
|
0,
|
||||||
|
|
||||||
0.,
|
0.,
|
||||||
|
@ -68,7 +67,7 @@ static vp_couple _vp_couple0[]={
|
||||||
|
|
||||||
static vorbis_info_psy _psy_set0={
|
static vorbis_info_psy _psy_set0={
|
||||||
ATH_Bark_dB_lineaggressive,
|
ATH_Bark_dB_lineaggressive,
|
||||||
|
|
||||||
-100.f,
|
-100.f,
|
||||||
-140.f,
|
-140.f,
|
||||||
6.f, /* floor master att */
|
6.f, /* floor master att */
|
||||||
|
@ -148,7 +147,7 @@ static vorbis_info_psy _psy_set0={
|
||||||
.900f, 0.f, /*11500*/
|
.900f, 0.f, /*11500*/
|
||||||
.900f, 1.f, /*16000*/
|
.900f, 1.f, /*16000*/
|
||||||
},
|
},
|
||||||
|
|
||||||
95.f, /* even decade + 5 is important; saves an rint() later in a
|
95.f, /* even decade + 5 is important; saves an rint() later in a
|
||||||
tight loop) */
|
tight loop) */
|
||||||
-44.,
|
-44.,
|
||||||
|
@ -159,7 +158,7 @@ static vorbis_info_psy _psy_set0={
|
||||||
|
|
||||||
static vorbis_info_floor1 _floor_set0={1,
|
static vorbis_info_floor1 _floor_set0={1,
|
||||||
{0},
|
{0},
|
||||||
|
|
||||||
{32},
|
{32},
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
|
@ -171,12 +170,12 @@ static vorbis_info_floor1 _floor_set0={1,
|
||||||
88,31,243,
|
88,31,243,
|
||||||
|
|
||||||
14,54,143,460,
|
14,54,143,460,
|
||||||
|
|
||||||
6,3,10, 22,18,26, 41,36,47,
|
6,3,10, 22,18,26, 41,36,47,
|
||||||
69,61,78, 112,99,126, 185,162,211,
|
69,61,78, 112,99,126, 185,162,211,
|
||||||
329,282,387, 672,553,825
|
329,282,387, 672,553,825
|
||||||
},
|
},
|
||||||
|
|
||||||
60,30,400,
|
60,30,400,
|
||||||
20,8,1,18.,
|
20,8,1,18.,
|
||||||
20,600,
|
20,600,
|
||||||
|
@ -184,8 +183,8 @@ static vorbis_info_floor1 _floor_set0={1,
|
||||||
|
|
||||||
|
|
||||||
static vorbis_info_mapping0 mapping_info={1,{0,1},{0},{0},{0},0, 1, {0},{1}};
|
static vorbis_info_mapping0 mapping_info={1,{0,1},{0},{0},{0},0, 1, {0},{1}};
|
||||||
static codec_setup_info codec_setup0={ {0,0},
|
static codec_setup_info codec_setup0={ {0,0},
|
||||||
1,1,1,1,1,0,1,
|
1,1,1,1,1,0,1,
|
||||||
{NULL},
|
{NULL},
|
||||||
{0},{&mapping_info},
|
{0},{&mapping_info},
|
||||||
{0},{NULL},
|
{0},{NULL},
|
||||||
|
@ -194,7 +193,7 @@ static codec_setup_info codec_setup0={ {0,0},
|
||||||
{NULL},
|
{NULL},
|
||||||
{&_psy_set0},
|
{&_psy_set0},
|
||||||
&_psy_set0G};
|
&_psy_set0G};
|
||||||
|
|
||||||
static int noisy=0;
|
static int noisy=0;
|
||||||
void analysis(char *base,int i,float *v,int n,int bark,int dB){
|
void analysis(char *base,int i,float *v,int n,int bark,int dB){
|
||||||
if(noisy){
|
if(noisy){
|
||||||
|
@ -212,7 +211,7 @@ void analysis(char *base,int i,float *v,int n,int bark,int dB){
|
||||||
fprintf(of,"%g ",toBARK(22050.f*j/n));
|
fprintf(of,"%g ",toBARK(22050.f*j/n));
|
||||||
else
|
else
|
||||||
fprintf(of,"%g ",(float)j);
|
fprintf(of,"%g ",(float)j);
|
||||||
|
|
||||||
if(dB){
|
if(dB){
|
||||||
fprintf(of,"%g\n",todB(v+j));
|
fprintf(of,"%g\n",todB(v+j));
|
||||||
}else{
|
}else{
|
||||||
|
@ -269,7 +268,7 @@ int main(int argc,char *argv[]){
|
||||||
framesize=atoi(argv[0]);
|
framesize=atoi(argv[0]);
|
||||||
argv++;
|
argv++;
|
||||||
}
|
}
|
||||||
|
|
||||||
vi.channels=2;
|
vi.channels=2;
|
||||||
vi.codec_setup=&codec_setup0;
|
vi.codec_setup=&codec_setup0;
|
||||||
|
|
||||||
|
@ -292,7 +291,7 @@ int main(int argc,char *argv[]){
|
||||||
|
|
||||||
/* we cheat on the WAV header; we just bypass 44 bytes and never
|
/* we cheat on the WAV header; we just bypass 44 bytes and never
|
||||||
verify that it matches 16bit/stereo/44.1kHz. */
|
verify that it matches 16bit/stereo/44.1kHz. */
|
||||||
|
|
||||||
fread(buffer,1,44,stdin);
|
fread(buffer,1,44,stdin);
|
||||||
fwrite(buffer,1,44,stdout);
|
fwrite(buffer,1,44,stdout);
|
||||||
memset(buffer,0,framesize*2);
|
memset(buffer,0,framesize*2);
|
||||||
|
@ -302,10 +301,10 @@ int main(int argc,char *argv[]){
|
||||||
fprintf(stderr,"Processing for frame size %d...\n",framesize);
|
fprintf(stderr,"Processing for frame size %d...\n",framesize);
|
||||||
|
|
||||||
while(!eos){
|
while(!eos){
|
||||||
long bytes=fread(buffer2,1,framesize*2,stdin);
|
long bytes=fread(buffer2,1,framesize*2,stdin);
|
||||||
if(bytes<framesize*2)
|
if(bytes<framesize*2)
|
||||||
memset(buffer2+bytes,0,framesize*2-bytes);
|
memset(buffer2+bytes,0,framesize*2-bytes);
|
||||||
|
|
||||||
if(bytes!=0){
|
if(bytes!=0){
|
||||||
int nonzero[2];
|
int nonzero[2];
|
||||||
|
|
||||||
|
@ -316,10 +315,10 @@ int main(int argc,char *argv[]){
|
||||||
pcm[1][i]=((buffer[i*4+3]<<8)|
|
pcm[1][i]=((buffer[i*4+3]<<8)|
|
||||||
(0x00ff&(int)buffer[i*4+2]))/32768.f;
|
(0x00ff&(int)buffer[i*4+2]))/32768.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
float secs=framesize/44100.;
|
float secs=framesize/44100.;
|
||||||
|
|
||||||
ampmax+=secs*ampmax_att_per_sec;
|
ampmax+=secs*ampmax_att_per_sec;
|
||||||
if(ampmax<-9999)ampmax=-9999;
|
if(ampmax<-9999)ampmax=-9999;
|
||||||
}
|
}
|
||||||
|
@ -331,11 +330,11 @@ int main(int argc,char *argv[]){
|
||||||
float *logmdct=mdct+framesize/2;
|
float *logmdct=mdct+framesize/2;
|
||||||
|
|
||||||
analysis("pre",frameno+i,pcm[i],framesize,0,0);
|
analysis("pre",frameno+i,pcm[i],framesize,0,0);
|
||||||
|
|
||||||
/* fft and mdct transforms */
|
/* fft and mdct transforms */
|
||||||
for(j=0;j<framesize;j++)
|
for(j=0;j<framesize;j++)
|
||||||
fft[j]=pcm[i][j]*=window[j];
|
fft[j]=pcm[i][j]*=window[j];
|
||||||
|
|
||||||
drft_forward(&f_look,fft);
|
drft_forward(&f_look,fft);
|
||||||
|
|
||||||
local_ampmax[i]=-9999.f;
|
local_ampmax[i]=-9999.f;
|
||||||
|
@ -347,7 +346,7 @@ int main(int argc,char *argv[]){
|
||||||
if(temp>local_ampmax[i])local_ampmax[i]=temp;
|
if(temp>local_ampmax[i])local_ampmax[i]=temp;
|
||||||
}
|
}
|
||||||
if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i];
|
if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i];
|
||||||
|
|
||||||
mdct_forward(&m_look,pcm[i],mdct);
|
mdct_forward(&m_look,pcm[i],mdct);
|
||||||
for(j=0;j<framesize/2;j++)
|
for(j=0;j<framesize/2;j++)
|
||||||
logmdct[j]=todB(mdct+j);
|
logmdct[j]=todB(mdct+j);
|
||||||
|
@ -391,7 +390,7 @@ int main(int argc,char *argv[]){
|
||||||
logmdct,
|
logmdct,
|
||||||
mask,
|
mask,
|
||||||
logmax,
|
logmax,
|
||||||
|
|
||||||
flr[i]);
|
flr[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,7 +405,7 @@ int main(int argc,char *argv[]){
|
||||||
for(j=0;j<framesize/2;j++)
|
for(j=0;j<framesize/2;j++)
|
||||||
if(fabs(pcm[i][j])>1500)
|
if(fabs(pcm[i][j])>1500)
|
||||||
fprintf(stderr,"%ld ",frameno+i);
|
fprintf(stderr,"%ld ",frameno+i);
|
||||||
|
|
||||||
analysis("res",frameno+i,pcm[i],framesize/2,1,0);
|
analysis("res",frameno+i,pcm[i],framesize/2,1,0);
|
||||||
analysis("codedflr",frameno+i,flr[i],framesize/2,1,1);
|
analysis("codedflr",frameno+i,flr[i],framesize/2,1,1);
|
||||||
}
|
}
|
||||||
|
@ -416,7 +415,7 @@ int main(int argc,char *argv[]){
|
||||||
&vi,
|
&vi,
|
||||||
pcm,
|
pcm,
|
||||||
nonzero);
|
nonzero);
|
||||||
|
|
||||||
for(i=0;i<2;i++)
|
for(i=0;i<2;i++)
|
||||||
analysis("quant",frameno+i,pcm[i],framesize/2,1,0);
|
analysis("quant",frameno+i,pcm[i],framesize/2,1,0);
|
||||||
|
|
||||||
|
@ -426,7 +425,7 @@ int main(int argc,char *argv[]){
|
||||||
&mapping_info,
|
&mapping_info,
|
||||||
pcm,
|
pcm,
|
||||||
nonzero);
|
nonzero);
|
||||||
|
|
||||||
for(i=0;i<2;i++)
|
for(i=0;i<2;i++)
|
||||||
analysis("coupled",frameno+i,pcm[i],framesize/2,1,0);
|
analysis("coupled",frameno+i,pcm[i],framesize/2,1,0);
|
||||||
|
|
||||||
|
@ -434,11 +433,11 @@ int main(int argc,char *argv[]){
|
||||||
for(i=mapping_info.coupling_steps-1;i>=0;i--){
|
for(i=mapping_info.coupling_steps-1;i>=0;i--){
|
||||||
float *pcmM=pcm[mapping_info.coupling_mag[i]];
|
float *pcmM=pcm[mapping_info.coupling_mag[i]];
|
||||||
float *pcmA=pcm[mapping_info.coupling_ang[i]];
|
float *pcmA=pcm[mapping_info.coupling_ang[i]];
|
||||||
|
|
||||||
for(j=0;j<framesize/2;j++){
|
for(j=0;j<framesize/2;j++){
|
||||||
float mag=pcmM[j];
|
float mag=pcmM[j];
|
||||||
float ang=pcmA[j];
|
float ang=pcmA[j];
|
||||||
|
|
||||||
if(mag>0)
|
if(mag>0)
|
||||||
if(ang>0){
|
if(ang>0){
|
||||||
pcmM[j]=mag;
|
pcmM[j]=mag;
|
||||||
|
@ -457,7 +456,7 @@ int main(int argc,char *argv[]){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0;i<2;i++)
|
for(i=0;i<2;i++)
|
||||||
analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0);
|
analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0);
|
||||||
|
|
||||||
|
@ -479,7 +478,7 @@ int main(int argc,char *argv[]){
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* write data. Use the part of buffer we're about to shift out */
|
/* write data. Use the part of buffer we're about to shift out */
|
||||||
for(i=0;i<2;i++){
|
for(i=0;i<2;i++){
|
||||||
char *ptr=buffer+i*2;
|
char *ptr=buffer+i*2;
|
||||||
|
@ -503,7 +502,7 @@ int main(int argc,char *argv[]){
|
||||||
ptr+=4;
|
ptr+=4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr,"*");
|
fprintf(stderr,"*");
|
||||||
fwrite(buffer,1,framesize*2,stdout);
|
fwrite(buffer,1,framesize*2,stdout);
|
||||||
memmove(buffer,buffer2,framesize*2);
|
memmove(buffer,buffer2,framesize*2);
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: registry for time, floor, res backends and channel mappings
|
function: registry for time, floor, res backends and channel mappings
|
||||||
last mod: $Id: registry.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: registry for time, floor, res backends and channel mappings
|
function: registry for time, floor, res backends and channel mappings
|
||||||
last mod: $Id: registry.h 15531 2008-11-24 23:50:06Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: residue backend 0, 1 and 2 implementation
|
function: residue backend 0, 1 and 2 implementation
|
||||||
last mod: $Id: res0.c 19441 2015-01-21 01:17:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -31,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
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: linear scale -> dB, Bark and Mel scales
|
function: linear scale -> dB, Bark and Mel scales
|
||||||
last mod: $Id: scales.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,16 +6,16 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: basic shared codebook operations
|
function: basic shared codebook operations
|
||||||
last mod: $Id: sharedbook.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <limits.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ogg/ogg.h>
|
#include <ogg/ogg.h>
|
||||||
|
@ -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
|
||||||
|
@ -158,25 +166,34 @@ ogg_uint32_t *_make_words(char *l,long n,long sparsecount){
|
||||||
that's portable and totally safe against roundoff, but I haven't
|
that's portable and totally safe against roundoff, but I haven't
|
||||||
thought of it. Therefore, we opt on the side of caution */
|
thought of it. Therefore, we opt on the side of caution */
|
||||||
long _book_maptype1_quantvals(const static_codebook *b){
|
long _book_maptype1_quantvals(const static_codebook *b){
|
||||||
long vals=floor(pow((float)b->entries,1.f/b->dim));
|
long vals;
|
||||||
|
if(b->entries<1){
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
vals=floor(pow((float)b->entries,1.f/b->dim));
|
||||||
|
|
||||||
/* the above *should* be reliable, but we'll not assume that FP is
|
/* the above *should* be reliable, but we'll not assume that FP is
|
||||||
ever reliable when bitstream sync is at stake; verify via integer
|
ever reliable when bitstream sync is at stake; verify via integer
|
||||||
means that vals really is the greatest value of dim for which
|
means that vals really is the greatest value of dim for which
|
||||||
vals^b->bim <= b->entries */
|
vals^b->bim <= b->entries */
|
||||||
/* treat the above as an initial guess */
|
/* treat the above as an initial guess */
|
||||||
|
if(vals<1){
|
||||||
|
vals=1;
|
||||||
|
}
|
||||||
while(1){
|
while(1){
|
||||||
long acc=1;
|
long acc=1;
|
||||||
long acc1=1;
|
long acc1=1;
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<b->dim;i++){
|
for(i=0;i<b->dim;i++){
|
||||||
|
if(b->entries/vals<acc)break;
|
||||||
acc*=vals;
|
acc*=vals;
|
||||||
acc1*=vals+1;
|
if(LONG_MAX/(vals+1)<acc1)acc1=LONG_MAX;
|
||||||
|
else acc1*=vals+1;
|
||||||
}
|
}
|
||||||
if(acc<=b->entries && acc1>b->entries){
|
if(i>=b->dim && acc<=b->entries && acc1>b->entries){
|
||||||
return(vals);
|
return(vals);
|
||||||
}else{
|
}else{
|
||||||
if(acc>b->entries){
|
if(i<b->dim || acc>b->entries){
|
||||||
vals--;
|
vals--;
|
||||||
}else{
|
}else{
|
||||||
vals++;
|
vals++;
|
||||||
|
@ -285,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));
|
||||||
|
@ -338,7 +355,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
|
||||||
ogg_uint32_t **codep;
|
ogg_uint32_t **codep;
|
||||||
|
|
||||||
if(codes==NULL)goto err_out;
|
if(codes==NULL)goto err_out;
|
||||||
codep = malloc(sizeof(*codep)*n);
|
codep=malloc(sizeof(*codep)*n);
|
||||||
|
|
||||||
for(i=0;i<n;i++){
|
for(i=0;i<n;i++){
|
||||||
codes[i]=bitreverse(codes[i]);
|
codes[i]=bitreverse(codes[i]);
|
||||||
|
@ -567,6 +584,7 @@ void run_test(static_codebook *b,float *comp){
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: *unnormalized* fft transform
|
function: *unnormalized* fft transform
|
||||||
last mod: $Id: smallft.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: fft transform
|
function: fft transform
|
||||||
last mod: $Id: smallft.h 13293 2007-07-24 00:09:47Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: single-block PCM synthesis
|
function: single-block PCM synthesis
|
||||||
last mod: $Id: synthesis.c 19441 2015-01-21 01:17:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -117,7 +116,7 @@ int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){
|
||||||
if(!ci->mode_param[mode]){
|
if(!ci->mode_param[mode]){
|
||||||
return(OV_EBADPACKET);
|
return(OV_EBADPACKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
vb->W=ci->mode_param[mode]->blockflag;
|
vb->W=ci->mode_param[mode]->blockflag;
|
||||||
if(vb->W){
|
if(vb->W){
|
||||||
vb->lW=oggpack_read(opb,1);
|
vb->lW=oggpack_read(opb,1);
|
||||||
|
|
|
@ -12,7 +12,7 @@ int main (int argc,char *argv[]){
|
||||||
int i,j;
|
int i,j;
|
||||||
double *f;
|
double *f;
|
||||||
double *amp;
|
double *amp;
|
||||||
|
|
||||||
if(argc<2)usage();
|
if(argc<2)usage();
|
||||||
|
|
||||||
f=alloca(sizeof(*f)*(argc-1));
|
f=alloca(sizeof(*f)*(argc-1));
|
||||||
|
@ -21,7 +21,7 @@ int main (int argc,char *argv[]){
|
||||||
i=0;
|
i=0;
|
||||||
while(argv[i+1]){
|
while(argv[i+1]){
|
||||||
char *pos=strchr(argv[i+1],',');
|
char *pos=strchr(argv[i+1],',');
|
||||||
|
|
||||||
f[i]=atof(argv[i+1]);
|
f[i]=atof(argv[i+1]);
|
||||||
if(pos)
|
if(pos)
|
||||||
amp[i]=atof(pos+1)*32767.f;
|
amp[i]=atof(pos+1)*32767.f;
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
|
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: libvorbis codec headers
|
function: libvorbis codec headers
|
||||||
last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: vorbis encode-engine setup
|
function: vorbis encode-engine setup
|
||||||
last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: stdio-based convenience library for opening/seeking/decoding
|
function: stdio-based convenience library for opening/seeking/decoding
|
||||||
last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: simple programmatic interface for encoder mode setup
|
function: simple programmatic interface for encoder mode setup
|
||||||
last mod: $Id: vorbisenc.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -685,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 */
|
||||||
|
@ -1211,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);
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: stdio-based convenience library for opening/seeking/decoding
|
function: stdio-based convenience library for opening/seeking/decoding
|
||||||
last mod: $Id: vorbisfile.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
@ -265,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. */
|
||||||
|
@ -1231,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)
|
||||||
|
@ -1254,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
|
||||||
|
@ -1389,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
|
||||||
|
@ -1965,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){
|
||||||
|
@ -1990,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)
|
||||||
|
@ -2420,9 +2422,9 @@ static int _ov_d_seek_lap(OggVorbis_File *vf,double pos,
|
||||||
|
|
||||||
/* splice */
|
/* splice */
|
||||||
_ov_splice(pcm,lappcm,n1,n2,ch1,ch2,w1,w2);
|
_ov_splice(pcm,lappcm,n1,n2,ch1,ch2,w1,w2);
|
||||||
ret = 0;
|
|
||||||
|
|
||||||
/* done */
|
/* done */
|
||||||
|
ret = 0;
|
||||||
done:
|
done:
|
||||||
for(i=0;i<ch1;i++)
|
for(i=0;i<ch1;i++)
|
||||||
free(lappcm[i]);
|
free(lappcm[i]);
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: window functions
|
function: window functions
|
||||||
last mod: $Id: window.c 19028 2013-12-02 23:23:39Z tterribe $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
* 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/ *
|
||||||
* *
|
* *
|
||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: window functions
|
function: window functions
|
||||||
last mod: $Id: window.h 19028 2013-12-02 23:23:39Z tterribe $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue