Cosmetics

Originally committed as revision 15838 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Reynaldo H. Verdejo Pinochet 2008-11-16 00:57:06 +00:00
parent f29289eec7
commit 1c3ae1abf2
1 changed files with 54 additions and 45 deletions

View File

@ -18,6 +18,7 @@
* License along with FFmpeg; if not, write to the Free Software * License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
/** /**
* @file qcelpdec.c * @file qcelpdec.c
* QCELP decoder * QCELP decoder
@ -38,15 +39,13 @@
#undef NDEBUG #undef NDEBUG
#include <assert.h> #include <assert.h>
static void weighted_vector_sumf(float *out, static void weighted_vector_sumf(float *out, const float *in_a,
const float *in_a, const float *in_b, float weight_coeff_a,
const float *in_b, float weight_coeff_b, int length)
float weight_coeff_a, {
float weight_coeff_b, int i;
int length) {
int i;
for (i = 0; i < length; i++) for(i=0; i<length; i++)
out[i] = weight_coeff_a * in_a[i] out[i] = weight_coeff_a * in_a[i]
+ weight_coeff_b * in_b[i]; + weight_coeff_b * in_b[i];
} }
@ -205,25 +204,28 @@ static void apply_gain_ctrl(float *v_out,
* *
* @return filter output vector * @return filter output vector
*/ */
static const float *do_pitchfilter(float memory[303], static const float *do_pitchfilter(float memory[303], const float v_in[160],
const float v_in[160], const float gain[4], const uint8_t *lag,
const float gain[4], const uint8_t pfrac[4])
const uint8_t *lag, {
const uint8_t pfrac[4]) {
int i, j; int i, j;
float *v_lag, *v_out; float *v_lag, *v_out;
const float *v_len; const float *v_len;
v_out = memory + 143; // Output vector starts at memory[143]. v_out = memory + 143; // Output vector starts at memory[143].
for (i = 0; i < 4; i++) for(i=0; i<4; i++)
if (gain[i]) { {
if(gain[i])
{
v_lag = memory + 143 + 40 * i - lag[i]; v_lag = memory + 143 + 40 * i - lag[i];
for (v_len = v_in + 40; v_in < v_len; v_in++) { for(v_len=v_in+40; v_in<v_len; v_in++)
if (pfrac[i]) { // If it is a fractional lag... {
for (j = 0, *v_out = 0.; j < 4; j++) if(pfrac[i]) // If it is a fractional lag...
{
for(j=0, *v_out=0.; j<4; j++)
*v_out += qcelp_hammsinc_table[j] * (v_lag[j-4] + v_lag[3-j]); *v_out += qcelp_hammsinc_table[j] * (v_lag[j-4] + v_lag[3-j]);
} else }else
*v_out = *v_lag; *v_out = *v_lag;
*v_out = *v_in + gain[i] * *v_out; *v_out = *v_in + gain[i] * *v_out;
@ -231,11 +233,13 @@ static const float *do_pitchfilter(float memory[303],
v_lag++; v_lag++;
v_out++; v_out++;
} }
} else { }else
{
memcpy(v_out, v_in, 40 * sizeof(float)); memcpy(v_out, v_in, 40 * sizeof(float));
v_in += 40; v_in += 40;
v_out += 40; v_out += 40;
} }
}
memmove(memory, memory + 160, 143 * sizeof(float)); memmove(memory, memory + 160, 143 * sizeof(float));
return memory + 143; return memory + 143;
@ -252,47 +256,52 @@ static const float *do_pitchfilter(float memory[303],
* @param lpc float vector for the resulting LPC * @param lpc float vector for the resulting LPC
* @param subframe_num frame number in decoded stream * @param subframe_num frame number in decoded stream
*/ */
void interpolate_lpc(QCELPContext *q, void interpolate_lpc(QCELPContext *q, const float *curr_lspf, float *lpc,
const float *curr_lspf, const int subframe_num)
float *lpc, {
const int subframe_num) {
float interpolated_lspf[10]; float interpolated_lspf[10];
float weight; float weight;
if (q->framerate >= RATE_QUARTER) { if(q->framerate >= RATE_QUARTER)
weight = 0.25 * (subframe_num + 1); weight = 0.25 * (subframe_num + 1);
} else if (q->framerate == RATE_OCTAVE && !subframe_num) { else if(q->framerate == RATE_OCTAVE && !subframe_num)
weight = 0.625; weight = 0.625;
} else { else
weight = 1.0; weight = 1.0;
}
if (weight != 1.0) { if(weight != 1.0)
weighted_vector_sumf(interpolated_lspf, curr_lspf, q->prev_lspf, weight, 1.0 - weight, 10); {
weighted_vector_sumf(interpolated_lspf, curr_lspf, q->prev_lspf,
weight, 1.0 - weight, 10);
qcelp_lspf2lpc(interpolated_lspf, lpc); qcelp_lspf2lpc(interpolated_lspf, lpc);
} else if (q->framerate >= RATE_QUARTER || (q->framerate == I_F_Q && !subframe_num)) }else if(q->framerate >= RATE_QUARTER || (q->framerate == I_F_Q && !subframe_num))
qcelp_lspf2lpc(curr_lspf, lpc); qcelp_lspf2lpc(curr_lspf, lpc);
} }
static int buf_size2framerate(const int buf_size) { static int buf_size2framerate(const int buf_size)
switch (buf_size) { {
case 35: switch(buf_size)
return RATE_FULL; {
case 17: case 35:
return RATE_HALF; return RATE_FULL;
case 8: case 17:
return RATE_QUARTER; return RATE_HALF;
case 4: case 8:
return RATE_OCTAVE; return RATE_QUARTER;
case 1: case 4:
return SILENCE; return RATE_OCTAVE;
case 1:
return SILENCE;
} }
return -1; return -1;
} }
static void warn_insufficient_frame_quality(AVCodecContext *avctx, static void warn_insufficient_frame_quality(AVCodecContext *avctx,
const char *message) { const char *message)
av_log(avctx, AV_LOG_WARNING, "Frame #%d, IFQ: %s\n", avctx->frame_number, message); {
av_log(avctx, AV_LOG_WARNING, "Frame #%d, IFQ: %s\n", avctx->frame_number,
message);
} }
AVCodec qcelp_decoder = AVCodec qcelp_decoder =