...
|
...
|
@@ -548,22 +548,21 @@ static int allocate_buffers(ALACContext *alac)
|
548
|
548
|
{
|
549
|
549
|
int ch;
|
550
|
550
|
for (ch = 0; ch < alac->numchannels; ch++) {
|
551
|
|
- alac->predicterror_buffer[ch] =
|
552
|
|
- av_malloc(alac->setinfo_max_samples_per_frame * 4);
|
|
551
|
+ int buf_size = alac->setinfo_max_samples_per_frame * sizeof(int32_t);
|
553
|
552
|
|
554
|
|
- alac->outputsamples_buffer[ch] =
|
555
|
|
- av_malloc(alac->setinfo_max_samples_per_frame * 4);
|
|
553
|
+ FF_ALLOC_OR_GOTO(alac->avctx, alac->predicterror_buffer[ch],
|
|
554
|
+ buf_size, buf_alloc_fail);
|
556
|
555
|
|
557
|
|
- alac->extra_bits_buffer[ch] = av_malloc(alac->setinfo_max_samples_per_frame * 4);
|
|
556
|
+ FF_ALLOC_OR_GOTO(alac->avctx, alac->outputsamples_buffer[ch],
|
|
557
|
+ buf_size, buf_alloc_fail);
|
558
|
558
|
|
559
|
|
- if (!alac->predicterror_buffer[ch] ||
|
560
|
|
- !alac->outputsamples_buffer[ch] ||
|
561
|
|
- !alac->extra_bits_buffer[ch]) {
|
562
|
|
- alac_decode_close(alac->avctx);
|
563
|
|
- return AVERROR(ENOMEM);
|
564
|
|
- }
|
|
559
|
+ FF_ALLOC_OR_GOTO(alac->avctx, alac->extra_bits_buffer[ch],
|
|
560
|
+ buf_size, buf_alloc_fail);
|
565
|
561
|
}
|
566
|
562
|
return 0;
|
|
563
|
+buf_alloc_fail:
|
|
564
|
+ alac_decode_close(alac->avctx);
|
|
565
|
+ return AVERROR(ENOMEM);
|
567
|
566
|
}
|
568
|
567
|
|
569
|
568
|
static int alac_set_info(ALACContext *alac)
|