diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index 87638e7143be40b6c55a8494c636c836b322ae03..584ce1a35ad59b4e272983e7a9047e57ac0983e9 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -227,10 +227,6 @@ static int ac3_parse_header(AC3DecodeContext *s)
 
     skip_bits(gbc, 2); //skip copyright bit and original bitstream bit
 
-    /* default dolby matrix encoding modes */
-    s->dolby_surround_ex_mode = AC3_DSUREXMOD_NOTINDICATED;
-    s->dolby_headphone_mode   = AC3_DHEADPHONMOD_NOTINDICATED;
-
     /* skip the timecodes or parse the Alternate Bit Stream Syntax
        TODO: read & use the xbsi1 downmix levels */
     if (s->bitstream_id != 6) {
@@ -290,6 +286,8 @@ static int parse_frame_header(AC3DecodeContext *s)
     s->frame_type                   = hdr.frame_type;
     s->substreamid                  = hdr.substreamid;
     s->dolby_surround_mode          = hdr.dolby_surround_mode;
+    s->dolby_surround_ex_mode       = AC3_DSUREXMOD_NOTINDICATED;
+    s->dolby_headphone_mode         = AC3_DHEADPHONMOD_NOTINDICATED;
 
     if (s->lfe_on) {
         s->start_freq[s->lfe_ch]     = 0;
diff --git a/libavcodec/eac3dec.c b/libavcodec/eac3dec.c
index fb6c51bcb8d4fd783cd2cdb508abc032aafb87b0..731735f2c9b270ed45ec33b8d11188b2efa78d50 100644
--- a/libavcodec/eac3dec.c
+++ b/libavcodec/eac3dec.c
@@ -341,11 +341,6 @@ int ff_eac3_parse_header(AC3DecodeContext *s)
         }
     }
 
-    /* default dolby matrix encoding modes */
-    s->dolby_surround_mode    = AC3_DSURMOD_NOTINDICATED;
-    s->dolby_surround_ex_mode = AC3_DSUREXMOD_NOTINDICATED;
-    s->dolby_headphone_mode   = AC3_DHEADPHONMOD_NOTINDICATED;
-
     /* mixing metadata */
     if (get_bits1(gbc)) {
         /* center and surround mix levels */