aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2014-10-03 15:47:13 +0200
committerSylvain Munaut <tnt@246tNt.com>2014-10-04 02:12:13 +0200
commit98c6a10fb6cdd91c912c1c88b5d35a6ca76332c8 (patch)
treef095493c85cc531bf9eec8260032d38a5e2fa07d
parentb43654fefffa597f9d66e52e2745e4bf67d25c57 (diff)
codec: Synthesis rewrite [1/2] - Remove mbelib
This obvisouly break synthesis for now, but it's easier to understand the change in a two step commit. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r--src/codec/Makefile.am2
-rw-r--r--src/codec/ambe.c39
-rw-r--r--src/codec/mbelib.c509
-rw-r--r--src/codec/mbelib.h51
-rw-r--r--src/codec/private.h4
5 files changed, 1 insertions, 604 deletions
diff --git a/src/codec/Makefile.am b/src/codec/Makefile.am
index bdecf58..3a45f68 100644
--- a/src/codec/Makefile.am
+++ b/src/codec/Makefile.am
@@ -5,4 +5,4 @@ AM_LDFLAGS = $(LIBOSMOCORE_LIBS)
noinst_LIBRARIES = libgmr1-codec.a
libgmr1_codec_a_SOURCES = \
- ambe.c codec.c frame.c math.c mbelib.c tables.c tone.c
+ ambe.c codec.c frame.c math.c tables.c tone.c
diff --git a/src/codec/ambe.c b/src/codec/ambe.c
index 5776762..46e7190 100644
--- a/src/codec/ambe.c
+++ b/src/codec/ambe.c
@@ -40,7 +40,6 @@ void
ambe_decode_init(struct ambe_decoder *dec)
{
memset(dec, 0x00, sizeof(struct ambe_decoder));
- mbe_initMbeParms(&dec->mp_prev);
}
/*! \brief Release all resources associated with a decoder
@@ -72,30 +71,6 @@ ambe_classify_frame(const uint8_t *frame)
};
}
-/*! \brief Converts an internal \ref ambe_subframe to a mbelib's \ref mbe_parameters
- * \param[out] mp mbelib's parameters structure to fill in
- * \param[in] sf Internal suframe data
- */
-static void
-ambe_subframe_to_mbelib(mbe_parms *mp, struct ambe_subframe *sf)
-{
- float unvc;
- int i;
-
- mp->w0 = sf->f0 * (2.0f * (float)M_PI);
- mp->L = sf->L;
-
- unvc = 0.2046f / sqrtf(mp->w0); /* ??? */
-
- for (i=1; i<=mp->L; i++) {
- int j = (int)((i-1) * 16.0f * sf->f0);
- mp->Vl[i] = sf->v_uv[j];
- mp->Ml[i] = powf(2.0, sf->Mlog[i-1]) / 6.0f;
- if (!mp->Vl[i])
- mp->Ml[i] *= unvc;
- }
-}
-
/*! \brief Decodes an AMBE speech frame to audio
* \param[in] dec Decoder state structure
* \param[out] audio Output audio buffer
@@ -111,7 +86,6 @@ ambe_decode_speech(struct ambe_decoder *dec,
{
struct ambe_raw_params rp;
struct ambe_subframe sf[2];
- mbe_parms mp[2];
/* Unpack frame */
ambe_frame_unpack_raw(&rp, frame);
@@ -119,19 +93,6 @@ ambe_decode_speech(struct ambe_decoder *dec,
/* Decode subframe parameters */
ambe_frame_decode_params(sf, &dec->sf_prev, &rp);
- /* Convert both subframes to mbelib's format */
- ambe_subframe_to_mbelib(&mp[0], &sf[0]);
- ambe_subframe_to_mbelib(&mp[1], &sf[1]);
-
- /* Synthesize speech (using mbelib for now) */
- mbe_spectralAmpEnhance(&mp[0]);
- mbe_spectralAmpEnhance(&mp[1]);
-
- mbe_synthesizeSpeech(audio, &mp[0], &dec->mp_prev, 2);
- mbe_synthesizeSpeech(audio+80, &mp[1], &mp[0], 2);
-
- mbe_moveMbeParms(&mp[1], &dec->mp_prev);
-
/* Save subframe */
memcpy(&dec->sf_prev, &sf[1], sizeof(struct ambe_subframe));
diff --git a/src/codec/mbelib.c b/src/codec/mbelib.c
deleted file mode 100644
index 67b2455..0000000
--- a/src/codec/mbelib.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (C) 2010 mbelib Author
- * GPG Key ID: 0xEA5EFE2C (9E7A 5527 9CDC EBF7 BF1B D772 4F98 E863 EA5E FE2C)
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-#include "mbelib.h"
-#include "private.h"
-
-
-/*
- * Speech Synthesis Window 8k version
- */
-static const int N = 80;
-
-static const float Ws[161] = {
- 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.02, 0.06, 0.10, 0.14, 0.18, 0.22, 0.26, 0.30,
- 0.34,
- 0.38, 0.42, 0.46, 0.50, 0.54, 0.58, 0.62, 0.66,
- 0.70, 0.74, 0.78, 0.82, 0.86, 0.90, 0.94, 0.98,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
- 0.98, 0.94, 0.90, 0.86, 0.82, 0.78, 0.74, 0.70,
- 0.66, 0.62, 0.58, 0.54, 0.50, 0.46, 0.42, 0.38,
- 0.34, 0.30, 0.26, 0.22, 0.18, 0.14, 0.10, 0.06,
- 0.02,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
- 0.00, 0.00, 0.00, 0.00
-};
-
-
-void
-mbe_printVersion (char *str)
-{
- sprintf (str, "%s", MBELIB_VERSION);
-}
-
-void
-mbe_moveMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp)
-{
-
- int l;
-
- prev_mp->w0 = cur_mp->w0;
- prev_mp->L = cur_mp->L;
- prev_mp->K = cur_mp->K; // necessary?
- prev_mp->Ml[0] = (float) 0;
- prev_mp->gamma = cur_mp->gamma;
- prev_mp->repeat = cur_mp->repeat;
- for (l = 0; l <= 56; l++)
- {
- prev_mp->Ml[l] = cur_mp->Ml[l];
- prev_mp->Vl[l] = cur_mp->Vl[l];
- prev_mp->log2Ml[l] = cur_mp->log2Ml[l];
- prev_mp->PHIl[l] = cur_mp->PHIl[l];
- prev_mp->PSIl[l] = cur_mp->PSIl[l];
- }
-}
-
-void
-mbe_useLastMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp)
-{
-
- int l;
-
- cur_mp->w0 = prev_mp->w0;
- cur_mp->L = prev_mp->L;
- cur_mp->K = prev_mp->K; // necessary?
- cur_mp->Ml[0] = (float) 0;
- cur_mp->gamma = prev_mp->gamma;
- cur_mp->repeat = prev_mp->repeat;
- for (l = 0; l <= 56; l++)
- {
- cur_mp->Ml[l] = prev_mp->Ml[l];
- cur_mp->Vl[l] = prev_mp->Vl[l];
- cur_mp->log2Ml[l] = prev_mp->log2Ml[l];
- cur_mp->PHIl[l] = prev_mp->PHIl[l];
- cur_mp->PSIl[l] = prev_mp->PSIl[l];
- }
-}
-
-void
-mbe_initMbeParms (mbe_parms *mp)
-{
- int l;
-
- mp->w0 = 0.09378;
- mp->L = 30;
- mp->K = 10;
- mp->gamma = (float) 0;
- for (l = 0; l <= 56; l++)
- {
- mp->Ml[l] = (float) 0;
- mp->Vl[l] = 0;
- mp->log2Ml[l] = (float) 0; // log2 of 1 == 0
- mp->PHIl[l] = (float) 0;
- mp->PSIl[l] = (M_PI / (float) 2);
- }
- mp->repeat = 0;
-}
-
-void
-mbe_spectralAmpEnhance (mbe_parms * cur_mp)
-{
-
- float Rm0, Rm1, R2m0, R2m1, Wl[57];
- int l;
- float sum, gamma, M;
-
- Rm0 = 0;
- Rm1 = 0;
- for (l = 1; l <= cur_mp->L; l++)
- {
- Rm0 = Rm0 + powf (cur_mp->Ml[l], (float) 2);
- Rm1 = Rm1 + (powf (cur_mp->Ml[l], (float) 2) * cosf_fast (cur_mp->w0 * (float) l));
- }
-
- R2m0 = powf (Rm0, (float) 2);
- R2m1 = powf (Rm1, (float) 2);
-
- for (l = 1; l <= cur_mp->L; l++)
- {
- if (cur_mp->Ml[l] != 0)
- {
- Wl[l] = sqrtf (cur_mp->Ml[l]) * powf ((((float) 0.96 * M_PI * ((R2m0 + R2m1) - ((float) 2 * Rm0 * Rm1 * cosf_fast (cur_mp->w0 * (float) l)))) / (cur_mp->w0 * Rm0 * (R2m0 - R2m1))), (float) 0.25);
-
- if ((8 * l) <= cur_mp->L)
- {
- }
- else if (Wl[l] > 1.2)
- {
- cur_mp->Ml[l] = 1.2 * cur_mp->Ml[l];
- }
- else if (Wl[l] < 0.5)
- {
- cur_mp->Ml[l] = 0.5 * cur_mp->Ml[l];
- }
- else
- {
- cur_mp->Ml[l] = Wl[l] * cur_mp->Ml[l];
- }
- }
- }
-
- // generate scaling factor
- sum = 0;
- for (l = 1; l <= cur_mp->L; l++)
- {
- M = cur_mp->Ml[l];
- if (M < 0)
- {
- M = -M;
- }
- sum += powf (M, 2);
- }
- if (sum == 0)
- {
- gamma = (float) 1.0;
- }
- else
- {
- gamma = sqrtf (Rm0 / sum);
- }
-
- // apply scaling factor
- for (l = 1; l <= cur_mp->L; l++)
- {
- cur_mp->Ml[l] = gamma * cur_mp->Ml[l];
- }
-}
-
-void
-mbe_synthesizeSilencef (float *aout_buf)
-{
-
- int n;
- float *aout_buf_p;
-
- aout_buf_p = aout_buf;
- for (n = 0; n < N; n++)
- {
- *aout_buf_p = (float) 0;
- aout_buf_p++;
- }
-}
-
-void
-mbe_synthesizeSilence (short *aout_buf)
-{
-
- int n;
- short *aout_buf_p;
-
- aout_buf_p = aout_buf;
- for (n = 0; n < N; n++)
- {
- *aout_buf_p = (short) 0;
- aout_buf_p++;
- }
-}
-
-void
-mbe_synthesizeSpeechf (float *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality)
-{
-
- int i, l, n, maxl;
- float *Ss, loguvquality;
- float C1, C2, C3, C4;
- /* float deltaphil, deltawl, thetaln, aln; */
- int numUv;
- float cw0, pw0, cw0l, pw0l;
- float uvsine, uvrand, uvthreshold, uvthresholdf;
- float uvstep, uvoffset;
- float qfactor;
- float rphase[64], rphase2[64];
-
- uvthresholdf = (float) 2700;
- uvthreshold = ((uvthresholdf * M_PI) / (float) 4000);
-
- // voiced/unvoiced/gain settings
- uvsine = (float) 1.3591409 *M_E;
- uvrand = (float) 2.0;
-
- if ((uvquality < 1) || (uvquality > 64))
- {
- printf ("\nmbelib: Error - uvquality must be within the range 1 - 64\n");
- exit (1);
- }
-
- // calculate loguvquality
- if (uvquality == 1)
- {
- loguvquality = (float) 1 / M_E;
- }
- else
- {
- loguvquality = log ((float) uvquality) / (float) uvquality;
- }
-
- // calculate unvoiced step and offset values
- uvstep = (float) 1.0 / (float) uvquality;
- qfactor = loguvquality;
- uvoffset = (uvstep * (float) (uvquality - 1)) / (float) 2;
-
- // count number of unvoiced bands
- numUv = 0;
- for (l = 1; l <= cur_mp->L; l++)
- {
- if (cur_mp->Vl[l] == 0)
- {
- numUv++;
- }
- }
-
- cw0 = cur_mp->w0;
- pw0 = prev_mp->w0;
-
- // init aout_buf
- Ss = aout_buf;
- for (n = 0; n < N; n++)
- {
- *Ss = (float) 0;
- Ss++;
- }
-
- // eq 128 and 129
- if (cur_mp->L > prev_mp->L)
- {
- maxl = cur_mp->L;
- for (l = prev_mp->L + 1; l <= maxl; l++)
- {
- prev_mp->Ml[l] = (float) 0;
- prev_mp->Vl[l] = 1;
- }
- }
- else
- {
- maxl = prev_mp->L;
- for (l = cur_mp->L + 1; l <= maxl; l++)
- {
- cur_mp->Ml[l] = (float) 0;
- cur_mp->Vl[l] = 1;
- }
- }
-
- // update phil from eq 139,140
- for (l = 1; l <= 56; l++)
- {
- cur_mp->PSIl[l] = prev_mp->PSIl[l] + ((pw0 + cw0) * ((float) (l * N) / (float) 2));
- if (l <= (int) (cur_mp->L / 4))
- {
- cur_mp->PHIl[l] = cur_mp->PSIl[l];
- }
- else
- {
- cur_mp->PHIl[l] = cur_mp->PSIl[l] + ((numUv * ((((float) random () / (float) 2147483647) * M_PI * (float) 2) - M_PI)) / cur_mp->L);
- }
- }
-
- for (l = 1; l <= maxl; l++)
- {
- cw0l = (cw0 * (float) l);
- pw0l = (pw0 * (float) l);
- if ((cur_mp->Vl[l] == 0) && (prev_mp->Vl[l] == 1))
- {
- Ss = aout_buf;
- // init random phase
- for (i = 0; i < uvquality; i++)
- {
- rphase[i] = ((((float) random () / (float) 2147483647) * M_PI * (float) 2) - M_PI);
- }
- for (n = 0; n < N; n++)
- {
- C1 = 0;
- // eq 131
- C1 = Ws[n + N] * prev_mp->Ml[l] * cosf_fast ((pw0l * (float) n) + prev_mp->PHIl[l]);
- C3 = 0;
- // unvoiced multisine mix
- for (i = 0; i < uvquality; i++)
- {
- C3 = C3 + cosf_fast ((cw0 * (float) n * ((float) l + ((float) i * uvstep) - uvoffset)) + rphase[i]);
- if (cw0l > uvthreshold)
- {
- C3 = C3 + ((cw0l - uvthreshold) * uvrand * ((float) random () / (float) 2147483647));
- }
- }
- C3 = C3 * uvsine * Ws[n] * cur_mp->Ml[l] * qfactor;
- *Ss = *Ss + C1 + C3;
- Ss++;
- }
- }
- else if ((cur_mp->Vl[l] == 1) && (prev_mp->Vl[l] == 0))
- {
- Ss = aout_buf;
- // init random phase
- for (i = 0; i < uvquality; i++)
- {
- rphase[i] = ((((float) random () / (float) 2147483647) * M_PI * (float) 2) - M_PI);
- }
- for (n = 0; n < N; n++)
- {
- C1 = 0;
- // eq 132
- C1 = Ws[n] * cur_mp->Ml[l] * cosf_fast ((cw0l * (float) (n - N)) + cur_mp->PHIl[l]);
- C3 = 0;
- // unvoiced multisine mix
- for (i = 0; i < uvquality; i++)
- {
- C3 = C3 + cosf_fast ((pw0 * (float) n * ((float) l + ((float) i * uvstep) - uvoffset)) + rphase[i]);
- if (pw0l > uvthreshold)
- {
- C3 = C3 + ((pw0l - uvthreshold) * uvrand * ((float) random () / (float) 2147483647));
- }
- }
- C3 = C3 * uvsine * Ws[n + N] * prev_mp->Ml[l] * qfactor;
- *Ss = *Ss + C1 + C3;
- Ss++;
- }
- }
- // else if (((cur_mp->Vl[l] == 1) || (prev_mp->Vl[l] == 1)) && ((l >= 8) || (fabsf (cw0 - pw0) >= ((float) 0.1 * cw0))))
- else if ((cur_mp->Vl[l] == 1) && (prev_mp->Vl[l] == 1))
- {
- Ss = aout_buf;
- for (n = 0; n < N; n++)
- {
- C1 = 0;
- // eq 133-1
- C1 = Ws[n + N] * prev_mp->Ml[l] * cosf_fast ((pw0l * (float) n) + prev_mp->PHIl[l]);
- C2 = 0;
- // eq 133-2
- C2 = Ws[n] * cur_mp->Ml[l] * cosf_fast ((cw0l * (float) (n - N)) + cur_mp->PHIl[l]);
- *Ss = *Ss + C1 + C2;
- Ss++;
- }
- }
- /*
- // expensive and unnecessary?
- else if ((cur_mp->Vl[l] == 1) || (prev_mp->Vl[l] == 1))
- {
- Ss = aout_buf;
- // eq 137
- deltaphil = cur_mp->PHIl[l] - prev_mp->PHIl[l] - (((pw0 + cw0) * (float) (l * N)) / (float) 2);
- // eq 138
- deltawl = ((float) 1 / (float) N) * (deltaphil - ((float) 2 * M_PI * (int) ((deltaphil + M_PI) / (M_PI * (float) 2))));
- for (n = 0; n < N; n++)
- {
- // eq 136
- thetaln = prev_mp->PHIl[l] + ((pw0l + deltawl) * (float) n) + (((cw0 - pw0) * ((float) (l * n * n)) / (float) (2 * N)));
- // eq 135
- aln = prev_mp->Ml[l] + (((float) n / (float) N) * (cur_mp->Ml[l] - prev_mp->Ml[l]));
- // eq 134
- *Ss = *Ss + (aln * cosf_fast (thetaln));
- Ss++;
- }
- }
- */
- else
- {
- Ss = aout_buf;
- // init random phase
- for (i = 0; i < uvquality; i++)
- {
- rphase[i] = ((((float) random () / (float) 2147483647) * M_PI * (float) 2) - M_PI);
- }
- // init random phase
- for (i = 0; i < uvquality; i++)
- {
- rphase2[i] = ((((float) random () / (float) 2147483647) * M_PI * (float) 2) - M_PI);
- }
- for (n = 0; n < N; n++)
- {
- C3 = 0;
- // unvoiced multisine mix
- for (i = 0; i < uvquality; i++)
- {
- C3 = C3 + cosf_fast ((pw0 * (float) n * ((float) l + ((float) i * uvstep) - uvoffset)) + rphase[i]);
- if (pw0l > uvthreshold)
- {
- C3 = C3 + ((pw0l - uvthreshold) * uvrand * ((float) random () / (float) 2147483647));
- }
- }
- C3 = C3 * uvsine * Ws[n + N] * prev_mp->Ml[l] * qfactor;
- C4 = 0;
- // unvoiced multisine mix
- for (i = 0; i < uvquality; i++)
- {
- C4 = C4 + cosf_fast ((cw0 * (float) n * ((float) l + ((float) i * uvstep) - uvoffset)) + rphase2[i]);
- if (cw0l > uvthreshold)
- {
- C4 = C4 + ((cw0l - uvthreshold) * uvrand * ((float) random () / (float) 2147483647));
- }
- }
- C4 = C4 * uvsine * Ws[n] * cur_mp->Ml[l] * qfactor;
- *Ss = *Ss + C3 + C4;
- Ss++;
- }
- }
- }
-}
-
-void
-mbe_synthesizeSpeech (short *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality)
-{
- float float_buf[N];
-
- mbe_synthesizeSpeechf (float_buf, cur_mp, prev_mp, uvquality);
- mbe_floattoshort (float_buf, aout_buf);
-}
-
-void
-mbe_floattoshort (float *float_buf, short *aout_buf)
-{
-
- short *aout_buf_p;
- float *float_buf_p;
- int i, again;
- float audio;
-
- again = 7;
- aout_buf_p = aout_buf;
- float_buf_p = float_buf;
- for (i = 0; i < N; i++)
- {
- audio = again * *float_buf_p;
- if (audio > 32760)
- {
-#ifdef MBE_DEBUG
- printf ("audio clip: %f\n", audio);
-#endif
- audio = 32760;
- }
- else if (audio < -32760)
- {
-#ifdef MBE_DEBUG
- printf ("audio clip: %f\n", audio);
-#endif
- audio = -32760;
- }
- *aout_buf_p = (short) (audio);
- aout_buf_p++;
- float_buf_p++;
- }
-}
diff --git a/src/codec/mbelib.h b/src/codec/mbelib.h
deleted file mode 100644
index 601161b..0000000
--- a/src/codec/mbelib.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 mbelib Author
- * GPG Key ID: 0xEA5EFE2C (9E7A 5527 9CDC EBF7 BF1B D772 4F98 E863 EA5E FE2C)
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef __MBELIB_H__
-#define __MBELIB_H__
-
-#define MBELIB_VERSION "1.2.5"
-
-struct mbe_parameters
-{
- float w0;
- int L;
- int K;
- int Vl[57];
- float Ml[57];
- float log2Ml[57];
- float PHIl[57];
- float PSIl[57];
- float gamma;
- int un;
- int repeat;
-};
-
-typedef struct mbe_parameters mbe_parms;
-
-void mbe_printVersion (char *str);
-void mbe_moveMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp);
-void mbe_useLastMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp);
-void mbe_initMbeParms (mbe_parms *mp);
-void mbe_spectralAmpEnhance (mbe_parms * cur_mp);
-void mbe_synthesizeSilencef (float *aout_buf);
-void mbe_synthesizeSilence (short *aout_buf);
-void mbe_synthesizeSpeechf (float *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality);
-void mbe_synthesizeSpeech (short *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality);
-void mbe_floattoshort (float *float_buf, short *aout_buf);
-
-#endif /* __MBELIB_H__ */
diff --git a/src/codec/private.h b/src/codec/private.h
index 7ac87bf..71c812b 100644
--- a/src/codec/private.h
+++ b/src/codec/private.h
@@ -31,8 +31,6 @@
#include <stdint.h>
-#include "mbelib.h"
-
#define AMBE_RATE 8000 /*!< \brief AMBE sample rate (Hz) */
@@ -82,8 +80,6 @@ struct ambe_decoder
float tone_phase_f2; /*!< \brief Phase frequency 2 for tone frames */
struct ambe_subframe sf_prev; /*!< \brief Previous subframe */
-
- mbe_parms mp_prev; /*!< \brief mbelib previous frame */
};
/* From ambe.c */