diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2012-07-05 01:28:45 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2012-07-13 14:50:37 -0400 |
commit | c5880fe48bdeb5ae40ceeb679b9c1a633448fab4 (patch) | |
tree | 594a880505348de08ef339a82770af8b2a5a2c99 | |
parent | 5d34794d8f595430c936d5f880a29a9fb4cd7383 (diff) | |
download | opus-c5880fe48bdeb5ae40ceeb679b9c1a633448fab4.tar.gz |
Builds the analysis files more cleanly than #including C files
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | opus_sources.mk | 5 | ||||
-rw-r--r-- | src/analysis.c | 33 | ||||
-rw-r--r-- | src/analysis.h | 60 | ||||
-rw-r--r-- | src/opus_encoder.c | 4 |
5 files changed, 72 insertions, 35 deletions
diff --git a/Makefile.am b/Makefile.am index 3607e522..7a29d54a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,12 +14,9 @@ if FIXED_POINT SILK_SOURCES += $(SILK_SOURCES_FIXED) else SILK_SOURCES += $(SILK_SOURCES_FLOAT) +OPUS_SOURCES += $(OPUS_SOURCES_FLOAT) endif -include celt_headers.mk -include silk_headers.mk -include opus_headers.mk - libopus_la_SOURCES = $(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) pkginclude_HEADERS = include/opus.h include/opus_multistream.h include/opus_types.h include/opus_defines.h diff --git a/opus_sources.mk b/opus_sources.mk index 384b036a..81eaef06 100644 --- a/opus_sources.mk +++ b/opus_sources.mk @@ -3,3 +3,8 @@ src/opus_decoder.c \ src/opus_encoder.c \ src/opus_multistream.c \ src/repacketizer.c + +OPUS_SOURCES_FLOAT = \ +src/analysis.c \ +src/mlp.c \ +src/mlp_data.c diff --git a/src/analysis.c b/src/analysis.c index 3d27b7c2..a7a89194 100644 --- a/src/analysis.c +++ b/src/analysis.c @@ -35,10 +35,10 @@ #include "arch.h" #include "quant_bands.h" #include <stdio.h> -#ifndef FIXED_POINT -#include "mlp.c" -#include "mlp_data.c" -#endif +#include "analysis.h" +#include "mlp.h" + +extern const MLP net; #ifndef M_PI #define M_PI 3.141592653 @@ -96,9 +96,6 @@ float analysis_window[240] = { 0.997902f, 0.998459f, 0.998929f, 0.999315f, 0.999615f, 0.999829f, 0.999957f, 1.000000f, }; -#define NB_FRAMES 8 - -#define NB_TBANDS 18 static const int tbands[NB_TBANDS+1] = { 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 68, 80, 96, 120 }; @@ -109,28 +106,6 @@ static const float tweight[NB_TBANDS+1] = { #define NB_TONAL_SKIP_BANDS 9 -typedef struct { - float angle[240]; - float d_angle[240]; - float d2_angle[240]; - float prev_band_tonality[NB_TBANDS]; - float prev_tonality; - float E[NB_FRAMES][NB_TBANDS]; - float lowE[NB_TBANDS], highE[NB_TBANDS]; - float meanE[NB_TBANDS], meanRE[NB_TBANDS]; - float mem[32]; - float cmean[8]; - float std[9]; - float music_prob; - float Etracker; - float lowECount; - int E_count; - int last_music; - int last_transition; - int count; - int opus_bandwidth; -} TonalityAnalysisState; - #define cA 0.43157974f #define cB 0.67848403f #define cC 0.08595542f diff --git a/src/analysis.h b/src/analysis.h new file mode 100644 index 00000000..09d1036a --- /dev/null +++ b/src/analysis.h @@ -0,0 +1,60 @@ +/* Copyright (c) 2011 Xiph.Org Foundation + Written by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef ANALYSIS_H +#define ANALYSIS_H + +#define NB_FRAMES 8 +#define NB_TBANDS 18 + + +typedef struct { + float angle[240]; + float d_angle[240]; + float d2_angle[240]; + float prev_band_tonality[NB_TBANDS]; + float prev_tonality; + float E[NB_FRAMES][NB_TBANDS]; + float lowE[NB_TBANDS], highE[NB_TBANDS]; + float meanE[NB_TBANDS], meanRE[NB_TBANDS]; + float mem[32]; + float cmean[8]; + float std[9]; + float music_prob; + float Etracker; + float lowECount; + int E_count; + int last_music; + int last_transition; + int count; + int opus_bandwidth; +} TonalityAnalysisState; + +void tonality_analysis(TonalityAnalysisState *tonal, AnalysisInfo *info, + CELTEncoder *celt_enc, const opus_val16 *x, int C); + +#endif diff --git a/src/opus_encoder.c b/src/opus_encoder.c index efab2988..681a61b4 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -40,8 +40,8 @@ #include "arch.h" #include "opus_private.h" #include "os_support.h" -#include "analysis.c" - +#include "analysis.h" +#include "mathops.h" #include "tuning_parameters.h" #ifdef FIXED_POINT #include "fixed/structs_FIX.h" |