X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Fenvelope.h;h=f466efde8a786e3378d484fdab9b600ef1a89233;hb=018ca26dece618457dd13585cad52941193c4a25;hp=708797057d836def5b4fd5254e5e27e70292b46b;hpb=f0ccd2f19da56da9cb26f886898af7acf398d939;p=platform%2Fupstream%2Flibvorbis.git diff --git a/lib/envelope.h b/lib/envelope.h index 7087970..f466efd 100644 --- a/lib/envelope.h +++ b/lib/envelope.h @@ -5,13 +5,12 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: PCM data envelope analysis and manipulation - last mod: $Id: envelope.h,v 1.21 2002/03/24 21:04:00 xiphmont Exp $ ********************************************************************/ @@ -20,15 +19,25 @@ #include "mdct.h" -#define VE_DIV 4 -#define VE_CONV 3 -#define VE_BANDS 4 +#define VE_PRE 16 +#define VE_WIN 4 +#define VE_POST 2 +#define VE_AMP (VE_PRE+VE_POST-1) + +#define VE_BANDS 7 +#define VE_NEARDC 15 + +#define VE_MINSTRETCH 2 /* a bit less than short block */ +#define VE_MAXSTRETCH 12 /* one-third full block */ typedef struct { - float ampbuf[VE_DIV]; + float ampbuf[VE_AMP]; int ampptr; - float delbuf[VE_CONV-1]; - float convbuf[2]; + + float nearDC[VE_NEARDC]; + float nearDC_acc; + float nearDC_partialacc; + int nearptr; } envelope_filter_state; @@ -50,6 +59,7 @@ typedef struct { envelope_band band[VE_BANDS]; envelope_filter_state *filter; + int stretch; int *mark; @@ -67,4 +77,3 @@ extern int _ve_envelope_mark(vorbis_dsp_state *v); #endif -