summaryrefslogtreecommitdiff
path: root/libavcodec/alacenc.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2009-10-05 21:27:36 +0000
committerJustin Ruggles <justin.ruggles@gmail.com>2009-10-05 21:27:36 +0000
commitd6eee9f3e9bb5a5b8833d28d68612a25758438f7 (patch)
tree39ea07785201c6a2be8036ca13df8ebb5b686951 /libavcodec/alacenc.c
parent1fe4abf3975a0841e2820bc137d3ec72c26a6c8e (diff)
alacenc: add a fixed LPC coefficient mode as compression level 1. old
compression level 1 is now compression level 2 and is still the default. Originally committed as revision 20173 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/alacenc.c')
-rw-r--r--libavcodec/alacenc.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c
index 691e6df41e..4f869ee230 100644
--- a/libavcodec/alacenc.c
+++ b/libavcodec/alacenc.c
@@ -132,12 +132,23 @@ static void calc_predictor_params(AlacEncodeContext *s, int ch)
int shift[MAX_LPC_ORDER];
int opt_order;
+ if (s->avctx->compression_level > 1) {
opt_order = ff_lpc_calc_coefs(&s->dspctx, s->sample_buf[ch], s->avctx->frame_size, s->min_prediction_order, s->max_prediction_order,
ALAC_MAX_LPC_PRECISION, coefs, shift, 1, ORDER_METHOD_EST, ALAC_MAX_LPC_SHIFT, 1);
s->lpc[ch].lpc_order = opt_order;
s->lpc[ch].lpc_quant = shift[opt_order-1];
memcpy(s->lpc[ch].lpc_coeff, coefs[opt_order-1], opt_order*sizeof(int));
+ } else {
+ s->lpc[ch].lpc_order = 6;
+ s->lpc[ch].lpc_quant = 6;
+ s->lpc[ch].lpc_coeff[0] = 160;
+ s->lpc[ch].lpc_coeff[1] = -190;
+ s->lpc[ch].lpc_coeff[2] = 170;
+ s->lpc[ch].lpc_coeff[3] = -130;
+ s->lpc[ch].lpc_coeff[4] = 80;
+ s->lpc[ch].lpc_coeff[5] = -25;
+ }
}
static int estimate_stereo_mode(int32_t *left_ch, int32_t *right_ch, int n)
@@ -375,9 +386,9 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
// Set default compression level
if(avctx->compression_level == FF_COMPRESSION_DEFAULT)
- s->compression_level = 1;
+ s->compression_level = 2;
else
- s->compression_level = av_clip(avctx->compression_level, 0, 1);
+ s->compression_level = av_clip(avctx->compression_level, 0, 2);
// Initialize default Rice parameters
s->rc.history_mult = 40;