aacdec: initialize sbr context only in new channel elements
authorJanne Grunau <janne-libav@jannau.net>
Sat, 22 Oct 2011 23:11:44 +0000 (01:11 +0200)
committerJanne Grunau <janne-libav@jannau.net>
Tue, 25 Oct 2011 10:07:58 +0000 (12:07 +0200)
libavcodec/aacdec.c

index e4e18d6..d1774a1 100644 (file)
@@ -184,9 +184,11 @@ static av_cold int che_configure(AACContext *ac,
                                  int type, int id, int *channels)
 {
     if (che_pos[type][id]) {
-        if (!ac->che[type][id] && !(ac->che[type][id] = av_mallocz(sizeof(ChannelElement))))
-            return AVERROR(ENOMEM);
-        ff_aac_sbr_ctx_init(ac, &ac->che[type][id]->sbr);
+        if (!ac->che[type][id]) {
+            if (!(ac->che[type][id] = av_mallocz(sizeof(ChannelElement))))
+                return AVERROR(ENOMEM);
+            ff_aac_sbr_ctx_init(ac, &ac->che[type][id]->sbr);
+        }
         if (type != TYPE_CCE) {
             ac->output_data[(*channels)++] = ac->che[type][id]->ch[0].ret;
             if (type == TYPE_CPE ||