Commit be6df4d6 authored by Tristan Matthews's avatar Tristan Matthews

remove trailing whitespace

parent 6aab25cb
...@@ -86,7 +86,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out) ...@@ -86,7 +86,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out)
mode = speex_bits_unpack_unsigned(bits, 4); mode = speex_bits_unpack_unsigned(bits, 4);
if (mode == 15) if (mode == 15)
return -1; return -1;
} while (mode > 8); } while (mode > 8);
if (mode != 3) { if (mode != 3) {
...@@ -108,7 +108,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out) ...@@ -108,7 +108,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out)
for (i=0; i<NB_ORDER; i++) for (i=0; i<NB_ORDER; i++)
st->old_qlsp[i] = qlsp[i]; st->old_qlsp[i] = qlsp[i];
} }
/* Get global excitation gain */ /* Get global excitation gain */
qe = speex_bits_unpack_unsigned(bits, 5); qe = speex_bits_unpack_unsigned(bits, 5);
ol_gain = SIG_SCALING*exp(qe/3.5); ol_gain = SIG_SCALING*exp(qe/3.5);
...@@ -130,14 +130,14 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out) ...@@ -130,14 +130,14 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out)
NB_SUBFRAME_SIZE, bits, 0); NB_SUBFRAME_SIZE, bits, 0);
sanitize_values32(exc32, -32000, 32000, NB_SUBFRAME_SIZE); sanitize_values32(exc32, -32000, 32000, NB_SUBFRAME_SIZE);
/* Unquantize the innovation */ /* Unquantize the innovation */
SPEEX_MEMSET(innov, 0, NB_SUBFRAME_SIZE); SPEEX_MEMSET(innov, 0, NB_SUBFRAME_SIZE);
/* Decode sub-frame gain correction */ /* Decode sub-frame gain correction */
q_energy = speex_bits_unpack_unsigned(bits, 1); q_energy = speex_bits_unpack_unsigned(bits, 1);
ener = exc_gain_quant_scal1[q_energy] * ol_gain; ener = exc_gain_quant_scal1[q_energy] * ol_gain;
/* Fixed codebook contribution */ /* Fixed codebook contribution */
split_cb_shape_sign_unquant(innov, bits); split_cb_shape_sign_unquant(innov, bits);
...@@ -148,9 +148,9 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out) ...@@ -148,9 +148,9 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out)
exc[i] = exc32[i] + innov[i]; exc[i] = exc32[i] + innov[i];
} }
} }
SPEEX_COPY(out, &st->exc[-NB_SUBFRAME_SIZE], NB_FRAME_SIZE); SPEEX_COPY(out, &st->exc[-NB_SUBFRAME_SIZE], NB_FRAME_SIZE);
/* Loop on subframes */ /* Loop on subframes */
for (sub=0; sub<4; sub++) { for (sub=0; sub<4; sub++) {
const int offset = NB_SUBFRAME_SIZE*sub; const int offset = NB_SUBFRAME_SIZE*sub;
...@@ -173,7 +173,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out) ...@@ -173,7 +173,7 @@ int nb_decode(struct speex_decode_state *st, SpeexBits *bits, float *out)
for (i=0; i<NB_ORDER; i++) for (i=0; i<NB_ORDER; i++)
st->interp_qlpc[i] = ak[i]; st->interp_qlpc[i] = ak[i];
} }
/* Store the LSPs for interpolation in the next frame */ /* Store the LSPs for interpolation in the next frame */
for (i=0; i<NB_ORDER; i++) for (i=0; i<NB_ORDER; i++)
st->old_qlsp[i] = qlsp[i]; st->old_qlsp[i] = qlsp[i];
......
...@@ -33,13 +33,13 @@ int main(int argc, char **argv) ...@@ -33,13 +33,13 @@ int main(int argc, char **argv)
speex_bits_init(&bits); speex_bits_init(&bits);
while (1) while (1)
{ {
/*Read the size encoded by sampleenc, this part will likely be /*Read the size encoded by sampleenc, this part will likely be
different in your application*/ different in your application*/
fread(&nbBytes, sizeof(int), 1, stdin); fread(&nbBytes, sizeof(int), 1, stdin);
fprintf (stderr, "nbBytes: %d\n", nbBytes); fprintf (stderr, "nbBytes: %d\n", nbBytes);
if (feof(stdin)) if (feof(stdin))
break; break;
/*Read the "packet" encoded by sampleenc*/ /*Read the "packet" encoded by sampleenc*/
fread(cbits, 1, nbBytes, stdin); fread(cbits, 1, nbBytes, stdin);
/*Copy the data into the bit-stream struct*/ /*Copy the data into the bit-stream struct*/
...@@ -55,7 +55,7 @@ int main(int argc, char **argv) ...@@ -55,7 +55,7 @@ int main(int argc, char **argv)
/*Write the decoded audio to file*/ /*Write the decoded audio to file*/
fwrite(out, sizeof(short), FRAME_SIZE, fout); fwrite(out, sizeof(short), FRAME_SIZE, fout);
} }
/*Destroy the decoder state*/ /*Destroy the decoder state*/
speex_decoder_destroy(state); speex_decoder_destroy(state);
/*Destroy the bit-stream truct*/ /*Destroy the bit-stream truct*/
......
...@@ -52,9 +52,9 @@ int main(int argc, char **argv) ...@@ -52,9 +52,9 @@ int main(int argc, char **argv)
fwrite(&nbBytes, sizeof(int), 1, stdout); fwrite(&nbBytes, sizeof(int), 1, stdout);
/*Write the compressed data*/ /*Write the compressed data*/
fwrite(cbits, 1, nbBytes, stdout); fwrite(cbits, 1, nbBytes, stdout);
} }
/*Destroy the encoder state*/ /*Destroy the encoder state*/
speex_encoder_destroy(state); speex_encoder_destroy(state);
/*Destroy the bit-packing struct*/ /*Destroy the bit-packing struct*/
......
/* Copyright (C) 2002 Jean-Marc Valin /* Copyright (C) 2002 Jean-Marc Valin
File: speex_bits.c File: speex_bits.c
Handles bit packing/unpacking Handles bit packing/unpacking
...@@ -6,18 +6,18 @@ ...@@ -6,18 +6,18 @@
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
this software without specific prior written permission. this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
...@@ -79,7 +79,7 @@ EXPORT void speex_bits_set_bit_buffer(SpeexBits *bits, void *buff, int buf_size) ...@@ -79,7 +79,7 @@ EXPORT void speex_bits_set_bit_buffer(SpeexBits *bits, void *buff, int buf_size)
bits->charPtr=0; bits->charPtr=0;
bits->bitPtr=0; bits->bitPtr=0;
bits->overflow=0; bits->overflow=0;
} }
EXPORT void speex_bits_destroy(SpeexBits *bits) EXPORT void speex_bits_destroy(SpeexBits *bits)
......
/* Copyright (C) 2002-2006 Jean-Marc Valin /* Copyright (C) 2002-2006 Jean-Marc Valin
File: cb_search.c File: cb_search.c
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
this software without specific prior written permission. this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
...@@ -60,7 +60,7 @@ static void compute_weighted_codebook(const signed char *shape_cb, const spx_wor ...@@ -60,7 +60,7 @@ static void compute_weighted_codebook(const signed char *shape_cb, const spx_wor
for (i=0;i<shape_cb_size;i++) for (i=0;i<shape_cb_size;i++)
{ {
spx_word16_t *res; spx_word16_t *res;
res = resp+i*subvect_size; res = resp+i*subvect_size;
for (k=0;k<subvect_size;k++) for (k=0;k<subvect_size;k++)
shape[k] = (spx_word16_t)shape_cb[i*subvect_size+k]; shape[k] = (spx_word16_t)shape_cb[i*subvect_size+k];
...@@ -131,7 +131,7 @@ int update_target ...@@ -131,7 +131,7 @@ int update_target
int best_index; int best_index;
spx_word32_t best_dist; spx_word32_t best_dist;
int have_sign; int have_sign;
params = (const split_cb_params *) par; params = (const split_cb_params *) par;
subvect_size = params->subvect_size; subvect_size = params->subvect_size;
nb_subvect = params->nb_subvect; nb_subvect = params->nb_subvect;
...@@ -148,7 +148,7 @@ int update_target ...@@ -148,7 +148,7 @@ int update_target
#endif #endif
ALLOC(t, nsf, spx_word16_t); ALLOC(t, nsf, spx_word16_t);
ALLOC(e, nsf, spx_sig_t); ALLOC(e, nsf, spx_sig_t);
/* FIXME: Do we still need to copy the target? */ /* FIXME: Do we still need to copy the target? */
SPEEX_COPY(t, target, nsf); SPEEX_COPY(t, target, nsf);
...@@ -164,9 +164,9 @@ int update_target ...@@ -164,9 +164,9 @@ int update_target
else else
#endif /* DISABLE_WIDEBAND */ #endif /* DISABLE_WIDEBAND */
vq_nbest(x, resp2, subvect_size, shape_cb_size, E, 1, &best_index, &best_dist, stack); vq_nbest(x, resp2, subvect_size, shape_cb_size, E, 1, &best_index, &best_dist, stack);
speex_bits_pack(bits,best_index,params->shape_bits+have_sign); speex_bits_pack(bits,best_index,params->shape_bits+have_sign);
{ {
int rind; int rind;
spx_word16_t *res; spx_word16_t *res;
...@@ -198,9 +198,9 @@ int update_target ...@@ -198,9 +198,9 @@ int update_target
for (j=0;j<subvect_size;j++) for (j=0;j<subvect_size;j++)
e[subvect_size*i+j]=sign*0.03125*shape_cb[rind*subvect_size+j]; e[subvect_size*i+j]=sign*0.03125*shape_cb[rind*subvect_size+j];
#endif #endif
} }
for (m=0;m<subvect_size;m++) for (m=0;m<subvect_size;m++)
{ {
spx_word16_t g; spx_word16_t g;
...@@ -212,7 +212,7 @@ int update_target ...@@ -212,7 +212,7 @@ int update_target
sign=-1; sign=-1;
rind-=shape_cb_size; rind-=shape_cb_size;
} }
q=subvect_size-m; q=subvect_size-m;
#ifdef FIXED_POINT #ifdef FIXED_POINT
g=sign*shape_cb[rind*subvect_size+m]; g=sign*shape_cb[rind*subvect_size+m];
...@@ -227,7 +227,7 @@ int update_target ...@@ -227,7 +227,7 @@ int update_target
/* FIXME: We could update the excitation directly above */ /* FIXME: We could update the excitation directly above */
for (j=0;j<nsf;j++) for (j=0;j<nsf;j++)
exc[j]=ADD32(exc[j],e[j]); exc[j]=ADD32(exc[j],e[j]);
/* Update target: only update target if necessary */ /* Update target: only update target if necessary */
if (update_target) if (update_target)
{ {
...@@ -338,14 +338,14 @@ int update_target ...@@ -338,14 +338,14 @@ int update_target
ALLOC(best_ntarget, N, int); ALLOC(best_ntarget, N, int);
ALLOC(ndist, N, spx_word32_t); ALLOC(ndist, N, spx_word32_t);
ALLOC(odist, N, spx_word32_t); ALLOC(odist, N, spx_word32_t);
ALLOC(itmp, 2*N*nb_subvect, int); ALLOC(itmp, 2*N*nb_subvect, int);
for (i=0;i<N;i++) for (i=0;i<N;i++)
{ {
nind[i]=itmp+2*i*nb_subvect; nind[i]=itmp+2*i*nb_subvect;
oind[i]=itmp+(2*i+1)*nb_subvect; oind[i]=itmp+(2*i+1)*nb_subvect;
} }
SPEEX_COPY(t, target, nsf); SPEEX_COPY(t, target, nsf);
for (j=0;j<N;j++) for (j=0;j<N;j++)
...@@ -356,14 +356,14 @@ int update_target ...@@ -356,14 +356,14 @@ int update_target
for (j=0;j<N;j++) for (j=0;j<N;j++)
odist[j]=0; odist[j]=0;
/*For all subvectors*/ /*For all subvectors*/
for (i=0;i<nb_subvect;i++) for (i=0;i<nb_subvect;i++)
{ {
/*"erase" nbest list*/ /*"erase" nbest list*/
for (j=0;j<N;j++) for (j=0;j<N;j++)
ndist[j]=VERY_LARGE32; ndist[j]=VERY_LARGE32;
/* This is not strictly necessary, but it provides an additonal safety /* This is not strictly necessary, but it provides an additonal safety
to prevent crashes in case something goes wrong in the previous to prevent crashes in case something goes wrong in the previous
steps (e.g. NaNs) */ steps (e.g. NaNs) */
for (j=0;j<N;j++) for (j=0;j<N;j++)
...@@ -393,7 +393,7 @@ int update_target ...@@ -393,7 +393,7 @@ int update_target
{ {
/* Compute total distance (including previous sub-vectors */ /* Compute total distance (including previous sub-vectors */
spx_word32_t err = ADD32(ADD32(odist[j],best_dist[k]),tener); spx_word32_t err = ADD32(ADD32(odist[j],best_dist[k]),tener);
/*update n-best list*/ /*update n-best list*/
if (err<ndist[N-1]) if (err<ndist[N-1])
{ {
...@@ -424,7 +424,7 @@ int update_target ...@@ -424,7 +424,7 @@ int update_target
/*previous target (we don't care what happened before*/ /*previous target (we don't care what happened before*/
for (m=(i+1)*subvect_size;m<nsf;m++) for (m=(i+1)*subvect_size;m<nsf;m++)
nt[j][m]=ot[best_ntarget[j]][m]; nt[j][m]=ot[best_ntarget[j]][m];
/* New code: update the rest of the target only if it's worth it */ /* New code: update the rest of the target only if it's worth it */
for (m=0;m<subvect_size;m++) for (m=0;m<subvect_size;m++)
{ {
...@@ -473,7 +473,7 @@ int update_target ...@@ -473,7 +473,7 @@ int update_target
ind[i]=nind[0][i]; ind[i]=nind[0][i];
speex_bits_pack(bits,ind[i],params->shape_bits+have_sign); speex_bits_pack(bits,ind[i],params->shape_bits+have_sign);
} }
/* Put everything back together */ /* Put everything back together */
for (i=0;i<nb_subvect;i++) for (i=0;i<nb_subvect;i++)
{ {
...@@ -498,11 +498,11 @@ int update_target ...@@ -498,11 +498,11 @@ int update_target
for (j=0;j<subvect_size;j++) for (j=0;j<subvect_size;j++)
e[subvect_size*i+j]=sign*0.03125*shape_cb[rind*subvect_size+j]; e[subvect_size*i+j]=sign*0.03125*shape_cb[rind*subvect_size+j];
#endif #endif
} }
/* Update excitation */ /* Update excitation */
for (j=0;j<nsf;j++) for (j=0;j<nsf;j++)
exc[j]=ADD32(exc[j],e[j]); exc[j]=ADD32(exc[j],e[j]);
/* Update target: only update target if necessary */ /* Update target: only update target if necessary */
if (update_target) if (update_target)
{ {
...@@ -571,7 +571,7 @@ spx_int32_t *seed ...@@ -571,7 +571,7 @@ spx_int32_t *seed
} }
#else #else
for (j=0;j<subvect_size;j++) for (j=0;j<subvect_size;j++)
exc[subvect_size*i+j]+=s*0.03125*shape_cb[ind[i]*subvect_size+j]; exc[subvect_size*i+j]+=s*0.03125*shape_cb[ind[i]*subvect_size+j];
#endif #endif
} }
} }
......
/* Copyright (C) 2002 Jean-Marc Valin /* Copyright (C) 2002 Jean-Marc Valin
File: exc_10_16_table.c File: exc_10_16_table.c
Codebook for excitation in narrowband CELP mode (3200 bps) Codebook for excitation in narrowband CELP mode (3200 bps)
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
this software without specific prior written permission. this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
......
/* Copyright (C) 2002 Jean-Marc Valin /* Copyright (C) 2002 Jean-Marc Valin
File: exc_10_32_table.c File: exc_10_32_table.c
Codebook for excitation in narrowband CELP mode (4000 bps) Codebook for excitation in narrowband CELP mode (4000 bps)
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
this software without specific prior written permission. this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
......
/* Copyright (C) 2002 Jean-Marc Valin /* Copyright (C) 2002 Jean-Marc Valin
File: exc_20_32_table.c File: exc_20_32_table.c
Codebook for excitation in narrowband CELP mode (2000 bps) Codebook for excitation in narrowband CELP mode (2000 bps)
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
this software without specific prior written permission. this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
......
/* Copyright (C) 2002 Jean-Marc Valin /* Copyright (C) 2002 Jean-Marc Valin
File: exc_5_256_table.c File: exc_5_256_table.c
Codebook for excitation in narrowband CELP mode (12800 bps) Codebook for excitation in narrowband CELP mode (12800 bps)
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
- Redistributions of source code must retain the above copyright - Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright - Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its - Neither the name of the Xiph.org Foundation nor the names of its