aacdec: Support for ER AAC in LATM
authorNiel van der Westhuizen <espes@pequalsnp.com>
Thu, 22 Jan 2015 05:24:23 +0000 (21:24 -0800)
committerAlex Converse <alex.converse@gmail.com>
Wed, 4 Feb 2015 04:32:16 +0000 (20:32 -0800)
libavcodec/aacdec.c

index 90de276..80dc79d 100644 (file)
@@ -3235,7 +3235,17 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out,
         return AVERROR_INVALIDDATA;
     }
 
-    if ((err = aac_decode_frame_int(avctx, out, got_frame_ptr, &gb)) < 0)
+    switch (latmctx->aac_ctx.oc[1].m4ac.object_type) {
+    case AOT_ER_AAC_LC:
+    case AOT_ER_AAC_LTP:
+    case AOT_ER_AAC_LD:
+    case AOT_ER_AAC_ELD:
+        err = aac_decode_er_frame(avctx, out, got_frame_ptr, &gb);
+        break;
+    default:
+        err = aac_decode_frame_int(avctx, out, got_frame_ptr, &gb);
+    }
+    if (err < 0)
         return err;
 
     return muxlength;