K&R formatting of already submitted G.729 code

Originally committed as revision 19127 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Vladimir Voroshilov 16 years ago
parent a52dc730cf
commit d4a9255699
  1. 15
      libavcodec/g729data.h
  2. 56
      libavcodec/g729dec.c

@ -39,8 +39,7 @@
* first stage LSP codebook * first stage LSP codebook
* (10-dimensional, with 128 entries (3.24 of G.729) * (10-dimensional, with 128 entries (3.24 of G.729)
*/ */
static const int16_t cb_lsp_1st[1<<VQ_1ST_BITS][10] = static const int16_t cb_lsp_1st[1<<VQ_1ST_BITS][10] = { /* (2.13) */
{ /* (2.13) */
{ 1486, 2168, 3751, 9074, 12134, 13944, 17983, 19173, 21190, 21820}, { 1486, 2168, 3751, 9074, 12134, 13944, 17983, 19173, 21190, 21820},
{ 1730, 2640, 3450, 4870, 6126, 7876, 15644, 17817, 20294, 21902}, { 1730, 2640, 3450, 4870, 6126, 7876, 15644, 17817, 20294, 21902},
{ 1568, 2256, 3088, 4874, 11063, 13393, 18307, 19293, 21109, 21741}, { 1568, 2256, 3088, 4874, 11063, 13393, 18307, 19293, 21109, 21741},
@ -175,8 +174,7 @@ static const int16_t cb_lsp_1st[1<<VQ_1ST_BITS][10] =
* second stage LSP codebook, high and low parts * second stage LSP codebook, high and low parts
(both 5-dimensional, with 32 entries (3.2.4 of G.729) (both 5-dimensional, with 32 entries (3.2.4 of G.729)
*/ */
static const int16_t cb_lsp_2nd[1<<VQ_2ND_BITS][10] = static const int16_t cb_lsp_2nd[1<<VQ_2ND_BITS][10] = { /* (2.13) */
{ /* (2.13) */
{ -435, -815, -742, 1033, -518, 582, -1201, 829, 86, 385}, { -435, -815, -742, 1033, -518, 582, -1201, 829, 86, 385},
{ -833, -891, 463, -8, -1251, 1450, 72, -231, 864, 661}, { -833, -891, 463, -8, -1251, 1450, 72, -231, 864, 661},
{-1021, 231, -306, 321, -220, -163, -526, -754, -1633, 267}, {-1021, 231, -306, 321, -220, -163, -526, -754, -1633, 267},
@ -214,8 +212,7 @@ static const int16_t cb_lsp_2nd[1<<VQ_2ND_BITS][10] =
/** /**
* gain codebook (first stage), 8k mode (3.9.2 of G.729) * gain codebook (first stage), 8k mode (3.9.2 of G.729)
*/ */
static const int16_t cb_gain_1st_8k[1<<GC_1ST_IDX_BITS_8K][2] = static const int16_t cb_gain_1st_8k[1<<GC_1ST_IDX_BITS_8K][2] = { /*(0.14) (2.13) */
{ /*(0.14) (2.13) */
{ 3242 , 9949 }, { 3242 , 9949 },
{ 1551 , 2425 }, { 1551 , 2425 },
{ 2678 , 27162 }, { 2678 , 27162 },
@ -229,8 +226,7 @@ static const int16_t cb_gain_1st_8k[1<<GC_1ST_IDX_BITS_8K][2] =
/** /**
* gain codebook (second stage), 8k mode (3.9.2 of G.729) * gain codebook (second stage), 8k mode (3.9.2 of G.729)
*/ */
static const int16_t cb_gain_2nd_8k[1<<GC_2ND_IDX_BITS_8K][2] = static const int16_t cb_gain_2nd_8k[1<<GC_2ND_IDX_BITS_8K][2] = { /*(1.14) (1.13) */
{ /*(1.14) (1.13) */
{ 5142 , 592 }, { 5142 , 592 },
{ 17299 , 1861 }, { 17299 , 1861 },
{ 6160 , 2395 }, { 6160 , 2395 },
@ -252,8 +248,7 @@ static const int16_t cb_gain_2nd_8k[1<<GC_2ND_IDX_BITS_8K][2] =
/** /**
* 4th order Moving Average (MA) Predictor codebook (3.2.4 of G.729) * 4th order Moving Average (MA) Predictor codebook (3.2.4 of G.729)
*/ */
static const int16_t cb_ma_predictor[2][MA_NP][10] = static const int16_t cb_ma_predictor[2][MA_NP][10] = { /* (0.15) */
{ /* (0.15) */
{ {
{ 8421, 9109, 9175, 8965, 9034, 9057, 8765, 8775, 9106, 8673}, { 8421, 9109, 9175, 8965, 9034, 9057, 8765, 8775, 9106, 8673},
{ 7018, 7189, 7638, 7307, 7444, 7379, 7038, 6956, 6930, 6868}, { 7018, 7189, 7638, 7307, 7444, 7379, 7038, 6956, 6930, 6868},

@ -71,8 +71,7 @@
*/ */
#define SHARP_MAX 13017 #define SHARP_MAX 13017
typedef struct typedef struct {
{
int sample_rate; int sample_rate;
uint8_t packed_frame_size; ///< input frame size(in bytes) uint8_t packed_frame_size; ///< input frame size(in bytes)
uint8_t unpacked_frame_size;///< output frame size (in bytes) uint8_t unpacked_frame_size;///< output frame size (in bytes)
@ -98,53 +97,40 @@ static inline int get_parity(uint8_t value)
return (0x6996966996696996ULL >> (value >> 2)) & 1; return (0x6996966996696996ULL >> (value >> 2)) & 1;
} }
if(avctx->channels != 1) if (avctx->channels != 1) {
{
av_log(avctx, AV_LOG_ERROR, "Only mono sound is supported (requested channels: %d).\n", avctx->channels); av_log(avctx, AV_LOG_ERROR, "Only mono sound is supported (requested channels: %d).\n", avctx->channels);
return AVERROR_NOFMT; return AVERROR_NOFMT;
} }
ff_acelp_weighted_vector_sum( ff_acelp_weighted_vector_sum(fc + pitch_delay_int[i],
fc + pitch_delay_int[i], fc + pitch_delay_int[i],
fc + pitch_delay_int[i], fc, 1 << 14,
fc, av_clip(ctx->gain_pitch, SHARP_MIN, SHARP_MAX),
1 << 14, 0, 14,
av_clip(ctx->gain_pitch, SHARP_MIN, SHARP_MAX), ctx->subframe_size - pitch_delay_int[i]);
0,
14, if (ctx->frame_erasure) {
ctx->subframe_size - pitch_delay_int[i]); ctx->gain_pitch = (29491 * ctx->gain_pitch) >> 15; // 0.90 (0.15)
ctx->gain_code = ( 2007 * ctx->gain_code ) >> 11; // 0.98 (0.11)
if(ctx->frame_erasure)
{
ctx->gain_pitch = (29491 * ctx->gain_pitch) >> 15; // 0.9 (0.15)
ctx->gain_code = (2007 * ctx->gain_code) >> 11; // 0.98 in (0.11)
gain_corr_factor = 0; gain_corr_factor = 0;
} } else {
else
{
ctx->gain_pitch = cb_gain_1st_8k[parm->gc_1st_index[i]][0] + ctx->gain_pitch = cb_gain_1st_8k[parm->gc_1st_index[i]][0] +
cb_gain_2nd_8k[parm->gc_2nd_index[i]][0]; cb_gain_2nd_8k[parm->gc_2nd_index[i]][0];
gain_corr_factor = cb_gain_1st_8k[parm->gc_1st_index[i]][1] + gain_corr_factor = cb_gain_1st_8k[parm->gc_1st_index[i]][1] +
cb_gain_2nd_8k[parm->gc_2nd_index[i]][1]; cb_gain_2nd_8k[parm->gc_2nd_index[i]][1];
ff_acelp_weighted_vector_sum( ff_acelp_weighted_vector_sum(ctx->exc + i * ctx->subframe_size,
ctx->exc + i * ctx->subframe_size, ctx->exc + i * ctx->subframe_size, fc,
ctx->exc + i * ctx->subframe_size, (!voicing && ctx->frame_erasure) ? 0 : ctx->gain_pitch,
fc, ( voicing && ctx->frame_erasure) ? 0 : ctx->gain_code,
(!voicing && ctx->frame_erasure) ? 0 : ctx->gain_pitch, 1<<13, 14, ctx->subframe_size);
( voicing && ctx->frame_erasure) ? 0 : ctx->gain_code,
1<<13, if (buf_size < packed_frame_size) {
14,
ctx->subframe_size);
if (buf_size<packed_frame_size)
{
av_log(avctx, AV_LOG_ERROR, "Error processing packet: packet size too small\n"); av_log(avctx, AV_LOG_ERROR, "Error processing packet: packet size too small\n");
return AVERROR(EIO); return AVERROR(EIO);
} }
if (*data_size<unpacked_frame_size) if (*data_size < unpacked_frame_size) {
{
av_log(avctx, AV_LOG_ERROR, "Error processing packet: output buffer too small\n"); av_log(avctx, AV_LOG_ERROR, "Error processing packet: output buffer too small\n");
return AVERROR(EIO); return AVERROR(EIO);
} }

Loading…
Cancel
Save