Author: thilo.borgmann Date: Wed Nov 11 17:38:00 2009 New Revision: 5439 Log: Moves allocation of buffers for quantized parcor coefficients and direct form coefficients from read_specific_config() into decode_init().
Modified: als/alsdec.c Modified: als/alsdec.c ============================================================================== --- als/alsdec.c Wed Nov 11 17:25:38 2009 (r5438) +++ als/alsdec.c Wed Nov 11 17:38:00 2009 (r5439) @@ -173,7 +173,7 @@ static av_cold int read_specific_config( { GetBitContext gb; uint64_t ht_size; - int i, config_offset, crc_enabled, num_lpc_buffers; + int i, config_offset, crc_enabled; MPEG4AudioConfig m4ac; ALSSpecificConfig *sconf = &ctx->sconf; AVCodecContext *avctx = ctx->avctx; @@ -229,29 +229,6 @@ static av_cold int read_specific_config( ctx->cur_frame_length = sconf->frame_length; - // allocate quantized parcor coefficient buffer - num_lpc_buffers = sconf->mc_coding ? avctx->channels : 1; - i = num_lpc_buffers * sconf->max_order; - - ctx->quant_cof = av_malloc(sizeof(*ctx->quant_cof) * avctx->channels); - ctx->lpc_cof = av_malloc(sizeof(*ctx->lpc_cof) * avctx->channels); - ctx->quant_cof_buffer = av_malloc(sizeof(*ctx->quant_cof_buffer) * - num_lpc_buffers * sconf->max_order); - ctx->lpc_cof_buffer = av_malloc(sizeof(*ctx->lpc_cof_buffer) * - num_lpc_buffers * sconf->max_order); - - if (!ctx->quant_cof || !ctx->lpc_cof || - !ctx->quant_cof_buffer || !ctx->lpc_cof_buffer) { - av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n"); - return AVERROR(ENOMEM); - } - - // assign quantized parcor coefficient buffers - for (i = 0; i < num_lpc_buffers; i++) { - ctx->quant_cof[i] = ctx->quant_cof_buffer + i * sconf->max_order; - ctx->lpc_cof[i] = ctx->lpc_cof_buffer + i * sconf->max_order; - } - // calculate total number of frames to decode if possible if (samples != 0xFFFFFFFF) { ctx->num_frames = (samples - 1) / sconf->frame_length + 1; @@ -1273,6 +1250,7 @@ static av_cold int decode_init(AVCodecCo { unsigned int c; unsigned int channel_size; + int num_lpc_buffers; ALSDecContext *ctx = avctx->priv_data; ALSSpecificConfig *sconf = &ctx->sconf; ctx->avctx = avctx; @@ -1310,6 +1288,28 @@ static av_cold int decode_init(AVCodecCo else ctx->ltp_lag_length = 8; + // allocate quantized parcor coefficient buffer + num_lpc_buffers = sconf->mc_coding ? avctx->channels : 1; + + ctx->quant_cof = av_malloc(sizeof(*ctx->quant_cof) * avctx->channels); + ctx->lpc_cof = av_malloc(sizeof(*ctx->lpc_cof) * avctx->channels); + ctx->quant_cof_buffer = av_malloc(sizeof(*ctx->quant_cof_buffer) * + num_lpc_buffers * sconf->max_order); + ctx->lpc_cof_buffer = av_malloc(sizeof(*ctx->lpc_cof_buffer) * + num_lpc_buffers * sconf->max_order); + + if (!ctx->quant_cof || !ctx->lpc_cof || + !ctx->quant_cof_buffer || !ctx->lpc_cof_buffer) { + av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n"); + return AVERROR(ENOMEM); + } + + // assign quantized parcor coefficient buffers + for (c = 0; c < num_lpc_buffers; c++) { + ctx->quant_cof[c] = ctx->quant_cof_buffer + c * sconf->max_order; + ctx->lpc_cof[c] = ctx->lpc_cof_buffer + c * sconf->max_order; + } + // allocate and assign lag and gain data buffer for ltp mode ctx->use_ltp = av_mallocz(sizeof(*ctx->use_ltp) * avctx->channels); ctx->ltp_lag = av_malloc (sizeof(*ctx->ltp_lag) * avctx->channels); _______________________________________________ FFmpeg-soc mailing list FFmpeg-soc@mplayerhq.hu https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc