aac: Reset PS parameters on header decode failure.
authorAlex Converse <alex.converse@gmail.com>
Wed, 21 Mar 2012 17:11:02 +0000 (10:11 -0700)
committerAlex Converse <alex.converse@gmail.com>
Fri, 23 Mar 2012 21:56:44 +0000 (14:56 -0700)
If the next header frame codes zero envelopes the previous frame's
values will be used. Consequently the invalid values must be cleared.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
libavcodec/aacps.c

index 3da912c..6c9dcf2 100644 (file)
@@ -275,6 +275,10 @@ int ff_ps_read_data(AVCodecContext *avctx, GetBitContext *gb_host, PSContext *ps
 err:
     ps->start = 0;
     skip_bits_long(gb_host, bits_left);
+    memset(ps->iid_par, 0, sizeof(ps->iid_par));
+    memset(ps->icc_par, 0, sizeof(ps->icc_par));
+    memset(ps->ipd_par, 0, sizeof(ps->ipd_par));
+    memset(ps->opd_par, 0, sizeof(ps->opd_par));
     return bits_left;
 }