diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2014-10-03 15:47:13 +0200 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2014-10-04 02:12:13 +0200 |
commit | 98c6a10fb6cdd91c912c1c88b5d35a6ca76332c8 (patch) | |
tree | f095493c85cc531bf9eec8260032d38a5e2fa07d | |
parent | b43654fefffa597f9d66e52e2745e4bf67d25c57 (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.am | 2 | ||||
-rw-r--r-- | src/codec/ambe.c | 39 | ||||
-rw-r--r-- | src/codec/mbelib.c | 509 | ||||
-rw-r--r-- | src/codec/mbelib.h | 51 | ||||
-rw-r--r-- | src/codec/private.h | 4 |
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 */ |