aacdec: Handle the first frame being empty case.
Originally committed as revision 23673 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
91a4abd8f5
commit
fda36b5944
@ -1985,7 +1985,7 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
|
enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
|
||||||
int err, elem_id, data_size_tmp;
|
int err, elem_id, data_size_tmp;
|
||||||
int buf_consumed;
|
int buf_consumed;
|
||||||
int samples = 1024, multiplier;
|
int samples = 0, multiplier;
|
||||||
int buf_offset;
|
int buf_offset;
|
||||||
|
|
||||||
init_get_bits(&gb, buf, buf_size * 8);
|
init_get_bits(&gb, buf, buf_size * 8);
|
||||||
@ -2011,6 +2011,9 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (elem_type < TYPE_DSE)
|
||||||
|
samples = 1024;
|
||||||
|
|
||||||
switch (elem_type) {
|
switch (elem_type) {
|
||||||
|
|
||||||
case TYPE_SCE:
|
case TYPE_SCE:
|
||||||
@ -2093,6 +2096,7 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
}
|
}
|
||||||
*data_size = data_size_tmp;
|
*data_size = data_size_tmp;
|
||||||
|
|
||||||
|
if (samples)
|
||||||
ac->dsp.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels);
|
ac->dsp.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels);
|
||||||
|
|
||||||
if (ac->output_configured)
|
if (ac->output_configured)
|
||||||
|
Loading…
Reference in New Issue
Block a user