/******************************************************************** * * * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * * 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-2009 * * by the Xiph.Org Foundation https://xiph.org/ * * * ******************************************************************** function: PCM data envelope analysis ********************************************************************/ #include <stdlib.h> #include <string.h> #include <stdio.h> #include <math.h> #include <ogg/ogg.h> #include "vorbis/codec.h" #include "codec_internal.h" #include "os.h" #include "scales.h" #include "envelope.h" #include "mdct.h" #include "misc.h" void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){ … } void _ve_envelope_clear(envelope_lookup *e){ … } /* fairly straight threshhold-by-band based until we find something that works better and isn't patented. */ static int _ve_amp(envelope_lookup *ve, vorbis_info_psy_global *gi, float *data, envelope_band *bands, envelope_filter_state *filters){ … } #if 0 static int seq=0; static ogg_int64_t totalshift=-1024; #endif long _ve_envelope_search(vorbis_dsp_state *v){ … } int _ve_envelope_mark(vorbis_dsp_state *v){ … } void _ve_envelope_shift(envelope_lookup *e,long shift){ … }