X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Falacenc.c;h=70b3b0f2b102fdb952603e1b5d046d376685ee73;hb=7817ddabc8ccb417c293c3c788dcbc6b225840b4;hp=691e6df41e3c02d6b2d864d7114dba7dbbbeee9b;hpb=43d7c6118d64a8b2772e2d9e0c13413968e776f1;p=ffmpeg diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c index 691e6df41e3..70b3b0f2b10 100644 --- a/libavcodec/alacenc.c +++ b/libavcodec/alacenc.c @@ -132,12 +132,27 @@ static void calc_predictor_params(AlacEncodeContext *s, int ch) int shift[MAX_LPC_ORDER]; int opt_order; - 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)); + if (s->compression_level == 1) { + 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; + } else { + 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)); + } } static int estimate_stereo_mode(int32_t *left_ch, int32_t *right_ch, int n) @@ -375,9 +390,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;