comparison aacdec.c @ 11902:c883aa4aa616 libavcodec

aacdec: Handle the first frame being empty case.
author alexc
date Mon, 21 Jun 2010 04:05:09 +0000
parents 2d81202be6e2
children f3e007b379e5
comparison
equal deleted inserted replaced
11901:829dadee50c8 11902:c883aa4aa616
1983 ChannelElement *che = NULL, *che_prev = NULL; 1983 ChannelElement *che = NULL, *che_prev = NULL;
1984 GetBitContext gb; 1984 GetBitContext gb;
1985 enum RawDataBlockType elem_type, elem_type_prev = TYPE_END; 1985 enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
1986 int err, elem_id, data_size_tmp; 1986 int err, elem_id, data_size_tmp;
1987 int buf_consumed; 1987 int buf_consumed;
1988 int samples = 1024, multiplier; 1988 int samples = 0, multiplier;
1989 int buf_offset; 1989 int buf_offset;
1990 1990
1991 init_get_bits(&gb, buf, buf_size * 8); 1991 init_get_bits(&gb, buf, buf_size * 8);
1992 1992
1993 if (show_bits(&gb, 12) == 0xfff) { 1993 if (show_bits(&gb, 12) == 0xfff) {
2008 2008
2009 if (elem_type < TYPE_DSE && !(che=get_che(ac, elem_type, elem_id))) { 2009 if (elem_type < TYPE_DSE && !(che=get_che(ac, elem_type, elem_id))) {
2010 av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\n", elem_type, elem_id); 2010 av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\n", elem_type, elem_id);
2011 return -1; 2011 return -1;
2012 } 2012 }
2013
2014 if (elem_type < TYPE_DSE)
2015 samples = 1024;
2013 2016
2014 switch (elem_type) { 2017 switch (elem_type) {
2015 2018
2016 case TYPE_SCE: 2019 case TYPE_SCE:
2017 err = decode_ics(ac, &che->ch[0], &gb, 0, 0); 2020 err = decode_ics(ac, &che->ch[0], &gb, 0, 0);
2091 *data_size, data_size_tmp); 2094 *data_size, data_size_tmp);
2092 return -1; 2095 return -1;
2093 } 2096 }
2094 *data_size = data_size_tmp; 2097 *data_size = data_size_tmp;
2095 2098
2099 if (samples)
2096 ac->dsp.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels); 2100 ac->dsp.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels);
2097 2101
2098 if (ac->output_configured) 2102 if (ac->output_configured)
2099 ac->output_configured = OC_LOCKED; 2103 ac->output_configured = OC_LOCKED;
2100 2104