Module: libav
Branch: master
Commit: 45d199d5b0b7f09eb9baa29929a3bd07ed46223b

Author:    James Almer <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Thu Nov 24 21:10:47 2016 -0300

aac_adtstoasc_bsf: validate and forward extradata if the stream is already ASC

Fixes AAC AudioSpecificConfig passthrough.

Signed-off-by: James Almer <[email protected]>
Signed-off-by: Anton Khirnov <[email protected]>

---

 libavcodec/aac_adtstoasc_bsf.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c
index 9168e2b..08d60eb 100644
--- a/libavcodec/aac_adtstoasc_bsf.c
+++ b/libavcodec/aac_adtstoasc_bsf.c
@@ -135,8 +135,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;
 }

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to