aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2016-11-24 21:10:47 -0300
committerJames Almer <jamrial@gmail.com>2016-11-25 18:51:00 -0300
commitc269c43a83166003ab6649263bc60634a6b7866f (patch)
tree8277302e2ee080e331825d21891abbf4a53053e9
parent6f3e3cb8baccb6f86f60892d99a81beee7db0b60 (diff)
downloadffmpeg-c269c43a83166003ab6649263bc60634a6b7866f.tar.gz
avcodec/aac_adtstoasc_bsf: validate and forward extradata if the stream is already ASCn3.2.1
Fixes ticket #5973 Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit 6e1902bab4349a79c45807af18ebf5b50f7b436b)
-rw-r--r--Changelog1
-rw-r--r--libavcodec/aac_adtstoasc_bsf.c12
2 files changed, 11 insertions, 2 deletions
diff --git a/Changelog b/Changelog
index 94f652e319..82d38e5a67 100644
--- a/Changelog
+++ b/Changelog
@@ -2,6 +2,7 @@ Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version 3.2.1:
+- avcodec/aac_adtstoasc_bsf: validate and forward extradata if the stream is already ASC
- mss2: only use error correction for matching block counts
- softfloat: decrease MIN_EXP to cover full float range
- libopusdec: default to stereo for invalid number of channels
diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c
index 48889fc48e..1067160559 100644
--- a/libavcodec/aac_adtstoasc_bsf.c
+++ b/libavcodec/aac_adtstoasc_bsf.c
@@ -136,8 +136,16 @@ fail:
static int aac_adtstoasc_init(AVBSFContext *ctx)
{
- av_freep(&ctx->par_out->extradata);
- ctx->par_out->extradata_size = 0;
+ /* Validate the extradata if the stream is already MPEG-4 AudioSpecificConfig */
+ if (ctx->par_in->extradata) {
+ MPEG4AudioConfig mp4ac;
+ int ret = avpriv_mpeg4audio_get_config(&mp4ac, ctx->par_in->extradata,
+ ctx->par_in->extradata_size * 8, 1);
+ if (ret < 0) {
+ av_log(ctx, AV_LOG_ERROR, "Error parsing AudioSpecificConfig extradata!\n");
+ return ret;
+ }
+ }
return 0;
}