aac: Handle HE-AACv2 when sniffing a channel order.
authorAlex Converse <alex.converse@gmail.com>
Fri, 20 Apr 2012 21:01:57 +0000 (14:01 -0700)
committerAlex Converse <alex.converse@gmail.com>
Fri, 20 Apr 2012 21:06:28 +0000 (14:06 -0700)
libavcodec/aacdec.c

index 7cf2195..bd5ba00 100644 (file)
@@ -404,6 +404,13 @@ static int output_configure(AACContext *ac,
         if (ret < 0)
             return ret;
     }
         if (ret < 0)
             return ret;
     }
+    if (ac->oc[1].m4ac.ps == 1 && channels == 2) {
+        if (layout == AV_CH_FRONT_CENTER) {
+            layout = AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT;
+        } else {
+            layout = 0;
+        }
+    }
 
     memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0]));
     avctx->channel_layout = ac->oc[1].channel_layout = layout;
 
     memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0]));
     avctx->channel_layout = ac->oc[1].channel_layout = layout;