Browse Source

avcodec/mpegaudiodec_template: Check return value of subdecoder

After all, allocating an AVFloatDSPContext might have failed.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
(cherry picked from commit dac9e88a99)
release/4.3
Andreas Rheinhardt 5 years ago
parent
commit
cb08668ff9
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      libavcodec/mpegaudiodec_template.c

+ 6
- 2
libavcodec/mpegaudiodec_template.c View File

@@ -1858,7 +1858,7 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx)
{
MP3On4DecodeContext *s = avctx->priv_data;
MPEG4AudioConfig cfg;
int i;
int i, ret;

if ((avctx->extradata_size < 2) || !avctx->extradata) {
av_log(avctx, AV_LOG_ERROR, "Codec extradata missing or too short.\n");
@@ -1892,9 +1892,13 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx)
goto alloc_fail;
// Put decoder context in place to make init_decode() happy
avctx->priv_data = s->mp3decctx[0];
decode_init(avctx);
ret = decode_init(avctx);
// Restore mp3on4 context pointer
avctx->priv_data = s;
if (ret < 0) {
decode_close_mp3on4(avctx);
return ret;
}
s->mp3decctx[0]->adu_mode = 1; // Set adu mode

/* Create a separate codec/context for each frame (first is already ok).


Loading…
Cancel
Save