diff --git a/libavcodec/dca.c b/libavcodec/dca.c
index e3f87b9..0bf05e6 100644
--- a/libavcodec/dca.c
+++ b/libavcodec/dca.c
@@ -134,97 +134,113 @@ static const uint64_t dca_core_channel_layout[] = {
     AV_CH_LAYOUT_STEREO,                                                     
///< 2, L + R (stereo)
     AV_CH_LAYOUT_STEREO,                                                     
///< 2, (L+R) + (L-R) (sum-difference)
     AV_CH_LAYOUT_STEREO,                                                     
///< 2, LT +RT (left and right total)
-    AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER,                                  
///< 3, C+L+R
-    AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER,                                   
///< 3, L+R+S
-    AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,                
///< 4, C + L + R+ S
-    AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,                    
///< 4, L + R +SL+ SR
-    AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT, 
///< 5, C + L + R+ SL+SR
-    
AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER,
                    ///< 6, CL + CR + L + R + SL + SR
-    
AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,
                                      ///< 6, C + L + R+ LR + RR + OV
-    
AV_CH_FRONT_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_BACK_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
   ///< 6, CF+ CR+LF+ RF+LR + RR
-    
AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
 ///< 7, CL + C + CR + L + R + SL + SR
-    
AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
 ///< 8, CL + CR + L + R + SL1 + SL2+ SR1 + SR2
-    
AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_BACK_CENTER|AV_CH_SIDE_RIGHT,
 ///< 8, CL + C+ CR + L + R + SL + S+ SR
+    AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER,                                
///< 3, C+L+R
+    AV_CH_LAYOUT_STEREO | AV_CH_BACK_CENTER,                                 
///< 3, L+R+S
+    AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER,            
///< 4, C + L + R+ S
+    AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT,                
///< 4, L + R +SL+ SR
+
+    AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_SIDE_LEFT
+            | AV_CH_SIDE_RIGHT, ///< 5, C + L + R+ SL+SR
+
+    AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT
+            | AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER,  //< 
6, CL + CR + L + R + SL + SR
+
+    AV_CH_LAYOUT_STEREO | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT
+            | AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER, ///< 6, C + L + R+ LR + 
RR + OV
+
+    AV_CH_FRONT_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | 
AV_CH_FRONT_LEFT_OF_CENTER
+            | AV_CH_BACK_CENTER | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT, ///< 6, 
CF+ CR+LF+ RF+LR + RR
+
+    AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | 
AV_CH_FRONT_RIGHT_OF_CENTER
+            | AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT, ///< 
7, CL + C + CR + L + R + SL + SR
+
+    AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | 
AV_CH_LAYOUT_STEREO
+            | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT | AV_CH_BACK_LEFT
+            | AV_CH_BACK_RIGHT, ///< 8, CL + CR + L + R + SL1 + SL2+ SR1 + SR2
+
+    AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | 
AV_CH_FRONT_RIGHT_OF_CENTER
+            | AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_BACK_CENTER
+            | AV_CH_SIDE_RIGHT, ///< 8, CL + C+ CR + L + R + SL + S+ SR
 };
 
 static const int8_t dca_lfe_index[] = {
-    1,2,2,2,2,3,2,3,2,3,2,3,1,3,2,3
+    1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 1, 3, 2, 3
 };
 
 static const int8_t dca_channel_reorder_lfe[][9] = {
-    { 0, -1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  3, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  4, -1, -1, -1, -1, -1},
-    { 0,  1,  3,  4, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  4,  5, -1, -1, -1, -1},
-    { 3,  4,  0,  1,  5,  6, -1, -1, -1},
-    { 2,  0,  1,  4,  5,  6, -1, -1, -1},
-    { 0,  6,  4,  5,  2,  3, -1, -1, -1},
-    { 4,  2,  5,  0,  1,  6,  7, -1, -1},
-    { 5,  6,  0,  1,  7,  3,  8,  4, -1},
-    { 4,  2,  5,  0,  1,  6,  8,  7, -1},
+    { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 4, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, 4, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 4, 5, -1, -1, -1, -1 },
+    { 3, 4, 0, 1, 5, 6, -1, -1, -1 },
+    { 2, 0, 1, 4, 5, 6, -1, -1, -1 },
+    { 0, 6, 4, 5, 2, 3, -1, -1, -1 },
+    { 4, 2, 5, 0, 1, 6, 7, -1, -1 },
+    { 5, 6, 0, 1, 7, 3, 8, 4, -1 },
+    { 4, 2, 5, 0, 1, 6, 8, 7, -1 },
 };
 
 static const int8_t dca_channel_reorder_lfe_xch[][9] = {
-    { 0,  2, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  3, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  3, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  3, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  3, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  4, -1, -1, -1, -1, -1},
-    { 0,  1,  3,  4, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  4,  5, -1, -1, -1, -1},
-    { 0,  1,  4,  5,  3, -1, -1, -1, -1},
-    { 2,  0,  1,  5,  6,  4, -1, -1, -1},
-    { 3,  4,  0,  1,  6,  7,  5, -1, -1},
-    { 2,  0,  1,  4,  5,  6,  7, -1, -1},
-    { 0,  6,  4,  5,  2,  3,  7, -1, -1},
-    { 4,  2,  5,  0,  1,  7,  8,  6, -1},
-    { 5,  6,  0,  1,  8,  3,  9,  4,  7},
-    { 4,  2,  5,  0,  1,  6,  9,  8,  7},
+    { 0, 2, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 4, -1, -1, -1, -1, -1 },
+    { 0, 1, 3, 4, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 4, 5, -1, -1, -1, -1 },
+    { 0, 1, 4, 5, 3, -1, -1, -1, -1 },
+    { 2, 0, 1, 5, 6, 4, -1, -1, -1 },
+    { 3, 4, 0, 1, 6, 7, 5, -1, -1 },
+    { 2, 0, 1, 4, 5, 6, 7, -1, -1 },
+    { 0, 6, 4, 5, 2, 3, 7, -1, -1 },
+    { 4, 2, 5, 0, 1, 7, 8, 6, -1 },
+    { 5, 6, 0, 1, 8, 3, 9, 4, 7 },
+    { 4, 2, 5, 0, 1, 6, 9, 8, 7 },
 };
 
 static const int8_t dca_channel_reorder_nolfe[][9] = {
-    { 0, -1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  2, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  3, -1, -1, -1, -1, -1},
-    { 0,  1,  2,  3, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  3,  4, -1, -1, -1, -1},
-    { 2,  3,  0,  1,  4,  5, -1, -1, -1},
-    { 2,  0,  1,  3,  4,  5, -1, -1, -1},
-    { 0,  5,  3,  4,  1,  2, -1, -1, -1},
-    { 3,  2,  4,  0,  1,  5,  6, -1, -1},
-    { 4,  5,  0,  1,  6,  2,  7,  3, -1},
-    { 3,  2,  4,  0,  1,  5,  7,  6, -1},
+    { 0, -1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 3, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, 3, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 3, 4, -1, -1, -1, -1 },
+    { 2, 3, 0, 1, 4, 5, -1, -1, -1 },
+    { 2, 0, 1, 3, 4, 5, -1, -1, -1 },
+    { 0, 5, 3, 4, 1, 2, -1, -1, -1 },
+    { 3, 2, 4, 0, 1, 5, 6, -1, -1 },
+    { 4, 5, 0, 1, 6, 2, 7, 3, -1 },
+    { 3, 2, 4, 0, 1, 5, 7, 6, -1 },
 };
 
 static const int8_t dca_channel_reorder_nolfe_xch[][9] = {
-    { 0,  1, -1, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  2, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  2, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  2, -1, -1, -1, -1, -1, -1},
-    { 0,  1,  2, -1, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  3, -1, -1, -1, -1, -1},
-    { 0,  1,  2,  3, -1, -1, -1, -1, -1},
-    { 2,  0,  1,  3,  4, -1, -1, -1, -1},
-    { 0,  1,  3,  4,  2, -1, -1, -1, -1},
-    { 2,  0,  1,  4,  5,  3, -1, -1, -1},
-    { 2,  3,  0,  1,  5,  6,  4, -1, -1},
-    { 2,  0,  1,  3,  4,  5,  6, -1, -1},
-    { 0,  5,  3,  4,  1,  2,  6, -1, -1},
-    { 3,  2,  4,  0,  1,  6,  7,  5, -1},
-    { 4,  5,  0,  1,  7,  2,  8,  3,  6},
-    { 3,  2,  4,  0,  1,  5,  8,  7,  6},
+    { 0, 1, -1, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, -1, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 3, -1, -1, -1, -1, -1 },
+    { 0, 1, 2, 3, -1, -1, -1, -1, -1 },
+    { 2, 0, 1, 3, 4, -1, -1, -1, -1 },
+    { 0, 1, 3, 4, 2, -1, -1, -1, -1 },
+    { 2, 0, 1, 4, 5, 3, -1, -1, -1 },
+    { 2, 3, 0, 1, 5, 6, 4, -1, -1 },
+    { 2, 0, 1, 3, 4, 5, 6, -1, -1 },
+    { 0, 5, 3, 4, 1, 2, 6, -1, -1 },
+    { 3, 2, 4, 0, 1, 6, 7, 5, -1 },
+    { 4, 5, 0, 1, 7, 2, 8, 3, 6 },
+    { 3, 2, 4, 0, 1, 5, 8, 7, 6 },
 };
 
 #define DCA_DOLBY 101           /* FIXME */
@@ -335,13 +351,13 @@ typedef struct {
     float scale_bias;           ///< output scale
 
     DECLARE_ALIGNED(32, float, 
subband_samples)[DCA_BLOCKS_MAX][DCA_PRIM_CHANNELS_MAX][DCA_SUBBANDS][8];
-    DECLARE_ALIGNED(32, float, samples)[(DCA_PRIM_CHANNELS_MAX+1)*256];
-    const float *samples_chanptr[DCA_PRIM_CHANNELS_MAX+1];
+    DECLARE_ALIGNED(32, float, samples)[(DCA_PRIM_CHANNELS_MAX + 1) * 256];
+    const float *samples_chanptr[DCA_PRIM_CHANNELS_MAX + 1];
 
     uint8_t dca_buffer[DCA_MAX_FRAME_SIZE + DCA_MAX_EXSS_HEADER_SIZE + 
DCA_BUFFER_PADDING_SIZE];
     int dca_buffer_size;        ///< how much data is in the dca_buffer
 
-    const int8_t* channel_order_tab;                             ///< channel 
reordering table, lfe and non lfe
+    const int8_t *channel_order_tab;                             ///< channel 
reordering table, lfe and non lfe
     GetBitContext gb;
     /* Current position in DCA frame */
     int current_subframe;
@@ -416,13 +432,14 @@ static av_cold void dca_init_vlcs(void)
     }
 
     for (i = 0; i < 10; i++)
-        for (j = 0; j < 7; j++){
+        for (j = 0; j < 7; j++) {
             if (!bitalloc_codes[i][j]) break;
-            dca_smpl_bitalloc[i+1].offset = bitalloc_offsets[i];
-            dca_smpl_bitalloc[i+1].wrap = 1 + (j > 4);
-            dca_smpl_bitalloc[i+1].vlc[j].table = &dca_table[dca_vlc_offs[c]];
-            dca_smpl_bitalloc[i+1].vlc[j].table_allocated = dca_vlc_offs[c + 
1] - dca_vlc_offs[c];
-            init_vlc(&dca_smpl_bitalloc[i+1].vlc[j], bitalloc_maxbits[i][j],
+            dca_smpl_bitalloc[i + 1].offset = bitalloc_offsets[i];
+            dca_smpl_bitalloc[i + 1].wrap = 1 + (j > 4);
+            dca_smpl_bitalloc[i + 1].vlc[j].table = 
&dca_table[dca_vlc_offs[c]];
+            dca_smpl_bitalloc[i + 1].vlc[j].table_allocated = dca_vlc_offs[c + 
1]
+                                                              - 
dca_vlc_offs[c];
+            init_vlc(&dca_smpl_bitalloc[i + 1].vlc[j], bitalloc_maxbits[i][j],
                      bitalloc_sizes[i],
                      bitalloc_bits[i][j], 1, 1,
                      bitalloc_codes[i][j], 2, 2, INIT_VLC_USE_NEW_STATIC);
@@ -433,11 +450,11 @@ static av_cold void dca_init_vlcs(void)
 
 static inline void get_array(GetBitContext *gb, int *dst, int len, int bits)
 {
-    while(len--)
+    while (len--)
         *dst++ = get_bits(gb, bits);
 }
 
-static int dca_parse_audio_coding_header(DCAContext * s, int base_channel)
+static int dca_parse_audio_coding_header(DCAContext *s, int base_channel)
 {
     int i, j;
     static const float adj_table[4] = { 1.0, 1.1250, 1.2500, 1.4375 };
@@ -494,13 +511,19 @@ static int dca_parse_audio_coding_header(DCAContext * s, 
int base_channel)
 #ifdef TRACE
     av_log(s->avctx, AV_LOG_DEBUG, "subframes: %i\n", s->subframes);
     av_log(s->avctx, AV_LOG_DEBUG, "prim channels: %i\n", s->prim_channels);
-    for (i = base_channel; i < s->prim_channels; i++){
-        av_log(s->avctx, AV_LOG_DEBUG, "subband activity: %i\n", 
s->subband_activity[i]);
-        av_log(s->avctx, AV_LOG_DEBUG, "vq start subband: %i\n", 
s->vq_start_subband[i]);
-        av_log(s->avctx, AV_LOG_DEBUG, "joint intensity: %i\n", 
s->joint_intensity[i]);
-        av_log(s->avctx, AV_LOG_DEBUG, "transient mode codebook: %i\n", 
s->transient_huffman[i]);
-        av_log(s->avctx, AV_LOG_DEBUG, "scale factor codebook: %i\n", 
s->scalefactor_huffman[i]);
-        av_log(s->avctx, AV_LOG_DEBUG, "bit allocation quantizer: %i\n", 
s->bitalloc_huffman[i]);
+    for (i = base_channel; i < s->prim_channels; i++) {
+        av_log(s->avctx, AV_LOG_DEBUG, "subband activity: %i\n",
+               s->subband_activity[i]);
+        av_log(s->avctx, AV_LOG_DEBUG, "vq start subband: %i\n",
+               s->vq_start_subband[i]);
+        av_log(s->avctx, AV_LOG_DEBUG, "joint intensity: %i\n",
+               s->joint_intensity[i]);
+        av_log(s->avctx, AV_LOG_DEBUG, "transient mode codebook: %i\n",
+               s->transient_huffman[i]);
+        av_log(s->avctx, AV_LOG_DEBUG, "scale factor codebook: %i\n",
+               s->scalefactor_huffman[i]);
+        av_log(s->avctx, AV_LOG_DEBUG, "bit allocation quantizer: %i\n",
+               s->bitalloc_huffman[i]);
         av_log(s->avctx, AV_LOG_DEBUG, "quant index huff:");
         for (j = 0; j < 11; j++)
             av_log(s->avctx, AV_LOG_DEBUG, " %i",
@@ -513,10 +536,10 @@ static int dca_parse_audio_coding_header(DCAContext * s, 
int base_channel)
     }
 #endif
 
-  return 0;
+    return 0;
 }
 
-static int dca_parse_frame_header(DCAContext * s)
+static int dca_parse_frame_header(DCAContext *s)
 {
     init_get_bits(&s->gb, s->dca_buffer, s->dca_buffer_size * 8);
 
@@ -614,15 +637,15 @@ static int dca_parse_frame_header(DCAContext * s)
 
 static inline int get_scale(GetBitContext *gb, int level, int value)
 {
-   if (level < 5) {
-       /* huffman encoded */
-       value += get_bitalloc(gb, &dca_scalefactor, level);
-   } else if (level < 8)
-       value = get_bits(gb, level + 1);
-   return value;
+    if (level < 5) {
+        /* huffman encoded */
+        value += get_bitalloc(gb, &dca_scalefactor, level);
+    } else if (level < 8)
+        value = get_bits(gb, level + 1);
+    return value;
 }
 
-static int dca_subframe_header(DCAContext * s, int base_channel, int 
block_index)
+static int dca_subframe_header(DCAContext *s, int base_channel, int 
block_index)
 {
     /* Primary audio coding side information */
     int j, k;
@@ -693,7 +716,8 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
         const uint32_t *scale_table;
         int scale_sum;
 
-        memset(s->scale_factor[j], 0, s->subband_activity[j] * 
sizeof(s->scale_factor[0][0][0]) * 2);
+        memset(s->scale_factor[j], 0,
+               s->subband_activity[j] * sizeof(s->scale_factor[0][0][0]) * 2);
 
         if (s->scalefactor_huffman[j] == 6)
             scale_table = scale_factor_quant7;
@@ -792,7 +816,8 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
     if (!base_channel && s->lfe) {
         /* LFE samples */
         int lfe_samples = 2 * s->lfe * (4 + block_index);
-        int lfe_end_sample = 2 * s->lfe * (4 + block_index + 
s->subsubframes[s->current_subframe]);
+        int lfe_end_sample = 2 * s->lfe * (4 + block_index
+                             + s->subsubframes[s->current_subframe]);
         float lfe_scale;
 
         for (j = lfe_samples; j < lfe_end_sample; j++) {
@@ -822,12 +847,12 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
     }
     for (j = base_channel; j < s->prim_channels; j++) {
         for (k = 0; k < s->subband_activity[j]; k++)
-                av_log(s->avctx, AV_LOG_DEBUG,
-                       "prediction coefs: %f, %f, %f, %f\n",
-                       (float) adpcm_vb[s->prediction_vq[j][k]][0] / 8192,
-                       (float) adpcm_vb[s->prediction_vq[j][k]][1] / 8192,
-                       (float) adpcm_vb[s->prediction_vq[j][k]][2] / 8192,
-                       (float) adpcm_vb[s->prediction_vq[j][k]][3] / 8192);
+            av_log(s->avctx, AV_LOG_DEBUG,
+                   "prediction coefs: %f, %f, %f, %f\n",
+                   (float) adpcm_vb[s->prediction_vq[j][k]][0] / 8192,
+                   (float) adpcm_vb[s->prediction_vq[j][k]][1] / 8192,
+                   (float) adpcm_vb[s->prediction_vq[j][k]][2] / 8192,
+                   (float) adpcm_vb[s->prediction_vq[j][k]][3] / 8192);
     }
     for (j = base_channel; j < s->prim_channels; j++) {
         av_log(s->avctx, AV_LOG_DEBUG, "bitalloc index: ");
@@ -863,8 +888,10 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
     if (!base_channel && s->prim_channels > 2 && s->downmix) {
         av_log(s->avctx, AV_LOG_DEBUG, "Downmix coeffs:\n");
         for (j = 0; j < s->prim_channels; j++) {
-            av_log(s->avctx, AV_LOG_DEBUG, "Channel 0,%d = %f\n", j, 
dca_downmix_coeffs[s->downmix_coef[j][0]]);
-            av_log(s->avctx, AV_LOG_DEBUG, "Channel 1,%d = %f\n", j, 
dca_downmix_coeffs[s->downmix_coef[j][1]]);
+            av_log(s->avctx, AV_LOG_DEBUG, "Channel 0,%d = %f\n", j,
+                   dca_downmix_coeffs[s->downmix_coef[j][0]]);
+            av_log(s->avctx, AV_LOG_DEBUG, "Channel 1,%d = %f\n", j,
+                   dca_downmix_coeffs[s->downmix_coef[j][1]]);
         }
         av_log(s->avctx, AV_LOG_DEBUG, "\n");
     }
@@ -885,7 +912,7 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
     return 0;
 }
 
-static void qmf_32_subbands(DCAContext * s, int chans,
+static void qmf_32_subbands(DCAContext *s, int chans,
                             float samples_in[32][8], float *samples_out,
                             float scale)
 {
@@ -895,7 +922,7 @@ static void qmf_32_subbands(DCAContext * s, int chans,
     int sb_act = s->subband_activity[chans];
     int subindex;
 
-    scale *= sqrt(1/8.0);
+    scale *= sqrt(1 / 8.0);
 
     /* Select filter */
     if (!s->multirate_inter)    /* Non-perfect reconstruction */
@@ -909,18 +936,17 @@ static void qmf_32_subbands(DCAContext * s, int chans,
     /* Reconstructed channel sample index */
     for (subindex = 0; subindex < 8; subindex++) {
         /* Load in one sample from each subband and clear inactive subbands */
-        for (i = 0; i < sb_act; i++){
+        for (i = 0; i < sb_act; i++) {
             unsigned sign = (i - 1) & 2;
             uint32_t v = AV_RN32A(&samples_in[i][subindex]) ^ sign << 30;
             AV_WN32A(&s->raXin[i], v);
         }
 
         s->synth.synth_filter_float(&s->imdct,
-                              s->subband_fir_hist[chans], 
&s->hist_index[chans],
-                              s->subband_fir_noidea[chans], prCoeff,
-                              samples_out, s->raXin, scale);
-        samples_out+= 32;
-
+                                    s->subband_fir_hist[chans], 
&s->hist_index[chans],
+                                    s->subband_fir_noidea[chans], prCoeff,
+                                    samples_out, s->raXin, scale);
+        samples_out += 32;
     }
 }
 
@@ -983,12 +1009,12 @@ static void dca_downmix(float *samples, int srcfmt,
                         int downmix_coef[DCA_PRIM_CHANNELS_MAX][2],
                         const int8_t *channel_mapping)
 {
-    int c,l,r,sl,sr,s;
+    int c, l, r, sl, sr, s;
     int i;
     float t, u, v;
     float coef[DCA_PRIM_CHANNELS_MAX][2];
 
-    for (i=0; i<DCA_PRIM_CHANNELS_MAX; i++) {
+    for (i = 0; i < DCA_PRIM_CHANNELS_MAX; i++) {
         coef[i][0] = dca_downmix_coeffs[downmix_coef[i][0]];
         coef[i][1] = dca_downmix_coeffs[downmix_coef[i][1]];
     }
@@ -1007,11 +1033,11 @@ static void dca_downmix(float *samples, int srcfmt,
         c = channel_mapping[0] * 256;
         l = channel_mapping[1] * 256;
         r = channel_mapping[2] * 256;
-        DOWNMIX_TO_STEREO(MIX_FRONT3(samples, coef),);
+        DOWNMIX_TO_STEREO(MIX_FRONT3(samples, coef), );
         break;
     case DCA_2F1R:
         s = channel_mapping[2] * 256;
-        DOWNMIX_TO_STEREO(MIX_REAR1(samples, i + s, 2, coef),);
+        DOWNMIX_TO_STEREO(MIX_REAR1(samples, i + s, 2, coef), );
         break;
     case DCA_3F1R:
         c = channel_mapping[0] * 256;
@@ -1024,12 +1050,12 @@ static void dca_downmix(float *samples, int srcfmt,
     case DCA_2F2R:
         sl = channel_mapping[2] * 256;
         sr = channel_mapping[3] * 256;
-        DOWNMIX_TO_STEREO(MIX_REAR2(samples, i + sl, i + sr, 2, coef),);
+        DOWNMIX_TO_STEREO(MIX_REAR2(samples, i + sl, i + sr, 2, coef), );
         break;
     case DCA_3F2R:
-        c =  channel_mapping[0] * 256;
-        l =  channel_mapping[1] * 256;
-        r =  channel_mapping[2] * 256;
+        c = channel_mapping[0] * 256;
+        l = channel_mapping[1] * 256;
+        r = channel_mapping[2] * 256;
         sl = channel_mapping[3] * 256;
         sr = channel_mapping[4] * 256;
         DOWNMIX_TO_STEREO(MIX_FRONT3(samples, coef),
@@ -1049,7 +1075,7 @@ static int decode_blockcode(int code, int levels, int 
*values)
 
     for (i = 0; i < 4; i++) {
         int div = FASTDIV(code, levels);
-        values[i] = code - offset - div*levels;
+        values[i] = code - offset - div * levels;
         code = div;
     }
 
@@ -1076,7 +1102,7 @@ static inline void int8x8_fmul_int32(float *dst, const 
int8_t *src, int scale)
 }
 #endif
 
-static int dca_subsubframe(DCAContext * s, int base_channel, int block_index)
+static int dca_subsubframe(DCAContext *s, int base_channel, int block_index)
 {
     int k, l;
     int subsubframe = s->current_subsubframe;
@@ -1119,20 +1145,21 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
             /*
              * Extract bits from the bit stream
              */
-            if (!abits){
+            if (!abits) {
                 memset(subband_samples[k][l], 0, 8 * 
sizeof(subband_samples[0][0][0]));
             } else {
                 /* Deal with transients */
                 int sfi = s->transition_mode[k][l] && subsubframe >= 
s->transition_mode[k][l];
-                float rscale = quant_step_size * s->scale_factor[k][l][sfi] * 
s->scalefactor_adj[k][sel];
+                float rscale = quant_step_size * s->scale_factor[k][l][sfi]
+                               * s->scalefactor_adj[k][sel];
 
-                if (abits >= 11 || !dca_smpl_bitalloc[abits].vlc[sel].table){
-                    if (abits <= 7){
+                if (abits >= 11 || !dca_smpl_bitalloc[abits].vlc[sel].table) {
+                    if (abits <= 7) {
                         /* Block code */
                         int block_code1, block_code2, size, levels, err;
 
-                        size = abits_sizes[abits-1];
-                        levels = abits_levels[abits-1];
+                        size = abits_sizes[abits - 1];
+                        levels = abits_levels[abits - 1];
 
                         block_code1 = get_bits(&s->gb, size);
                         block_code2 = get_bits(&s->gb, size);
@@ -1155,7 +1182,7 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
                 }
 
                 s->fmt_conv.int32_to_float_fmul_scalar(subband_samples[k][l],
-                                                  block, rscale, 8);
+                                                       block, rscale, 8);
             }
 
             /*
@@ -1187,7 +1214,8 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
             int hfvq = s->high_freq_vq[k][l];
 
             if (!s->debug_flag & 0x01) {
-                av_log(s->avctx, AV_LOG_DEBUG, "Stream with high frequencies 
VQ coding\n");
+                av_log(s->avctx, AV_LOG_DEBUG,
+                       "Stream with high frequencies VQ coding\n");
                 s->debug_flag |= 0x01;
             }
 
@@ -1212,12 +1240,12 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
     for (k = base_channel; k < s->prim_channels; k++)
         for (l = 0; l < s->vq_start_subband[k]; l++)
             memcpy(s->subband_samples_hist[k][l], &subband_samples[k][l][4],
-                        4 * sizeof(subband_samples[0][0][0]));
+                   4 * sizeof(subband_samples[0][0][0]));
 
     return 0;
 }
 
-static int dca_filter_channels(DCAContext * s, int block_index)
+static int dca_filter_channels(DCAContext *s, int block_index)
 {
     float (*subband_samples)[DCA_SUBBANDS][8] = 
s->subband_samples[block_index];
     int k;
@@ -1226,8 +1254,8 @@ static int dca_filter_channels(DCAContext * s, int 
block_index)
     for (k = 0; k < s->prim_channels; k++) {
 /*        static float pcm_to_double[8] =
             {32768.0, 32768.0, 524288.0, 524288.0, 0, 8388608.0, 8388608.0};*/
-         qmf_32_subbands(s, k, subband_samples[k], &s->samples[256 * 
s->channel_order_tab[k]],
-                         M_SQRT1_2*s->scale_bias 
/*pcm_to_double[s->source_pcm_res] */ );
+        qmf_32_subbands(s, k, subband_samples[k], &s->samples[256 * 
s->channel_order_tab[k]],
+                        M_SQRT1_2 * s->scale_bias 
/*pcm_to_double[s->source_pcm_res] */);
     }
 
     /* Down mixing */
@@ -1240,7 +1268,7 @@ static int dca_filter_channels(DCAContext * s, int 
block_index)
         lfe_interpolation_fir(s, s->lfe, 2 * s->lfe,
                               s->lfe_data + 2 * s->lfe * (block_index + 4),
                               &s->samples[256 * dca_lfe_index[s->amode]],
-                              (1.0/256.0)*s->scale_bias);
+                              (1.0 / 256.0) * s->scale_bias);
         /* Outputs 20bits pcm samples */
     }
 
@@ -1248,7 +1276,7 @@ static int dca_filter_channels(DCAContext * s, int 
block_index)
 }
 
 
-static int dca_subframe_footer(DCAContext * s, int base_channel)
+static int dca_subframe_footer(DCAContext *s, int base_channel)
 {
     int aux_data_count = 0, i;
 
@@ -1280,7 +1308,7 @@ static int dca_subframe_footer(DCAContext * s, int 
base_channel)
  * @param s     pointer to the DCAContext
  */
 
-static int dca_decode_block(DCAContext * s, int base_channel, int block_index)
+static int dca_decode_block(DCAContext *s, int base_channel, int block_index)
 {
     int ret;
 
@@ -1328,8 +1356,8 @@ static int dca_decode_block(DCAContext * s, int 
base_channel, int block_index)
 /**
  * Convert bitstream to one representation based on sync marker
  */
-static int dca_convert_bitstream(const uint8_t * src, int src_size, uint8_t * 
dst,
-                          int max_size)
+static int dca_convert_bitstream(const uint8_t *src, int src_size, uint8_t 
*dst,
+                                 int max_size)
 {
     uint32_t mrk;
     int i, tmp;
@@ -1337,7 +1365,7 @@ static int dca_convert_bitstream(const uint8_t * src, int 
src_size, uint8_t * ds
     uint16_t *sdst = (uint16_t *) dst;
     PutBitContext pb;
 
-    if ((unsigned)src_size > (unsigned)max_size) {
+    if ((unsigned) src_size > (unsigned) max_size) {
 //        av_log(NULL, AV_LOG_ERROR, "Input frame size larger than 
DCA_MAX_FRAME_SIZE!\n");
 //        return -1;
         src_size = max_size;
@@ -1349,13 +1377,13 @@ static int dca_convert_bitstream(const uint8_t * src, 
int src_size, uint8_t * ds
         memcpy(dst, src, src_size);
         return src_size;
     case DCA_MARKER_RAW_LE:
-        for (i = 0; i < (src_size + 1) >> 1; i++)
+        for (i = 0; i < (src_size + 1) > > 1; i++)
             *sdst++ = av_bswap16(*ssrc++);
         return src_size;
     case DCA_MARKER_14B_BE:
     case DCA_MARKER_14B_LE:
         init_put_bits(&pb, dst, max_size);
-        for (i = 0; i < (src_size + 1) >> 1; i++, src += 2) {
+        for (i = 0; i < (src_size + 1) > > 1; i++, src += 2) {
             tmp = ((mrk == DCA_MARKER_14B_BE) ? AV_RB16(src) : AV_RL16(src)) & 
0x3FFF;
             put_bits(&pb, 14, tmp);
         }
@@ -1373,17 +1401,17 @@ static int dca_exss_mask2count(int mask)
 {
     /* count bits that mean speaker pairs twice */
     return av_popcount(mask)
-        + av_popcount(mask & (
-            DCA_EXSS_CENTER_LEFT_RIGHT
-          | DCA_EXSS_FRONT_LEFT_RIGHT
-          | DCA_EXSS_FRONT_HIGH_LEFT_RIGHT
-          | DCA_EXSS_WIDE_LEFT_RIGHT
-          | DCA_EXSS_SIDE_LEFT_RIGHT
-          | DCA_EXSS_SIDE_HIGH_LEFT_RIGHT
-          | DCA_EXSS_SIDE_REAR_LEFT_RIGHT
-          | DCA_EXSS_REAR_LEFT_RIGHT
-          | DCA_EXSS_REAR_HIGH_LEFT_RIGHT
-          ));
+           + av_popcount(mask & (
+                             DCA_EXSS_CENTER_LEFT_RIGHT
+                             | DCA_EXSS_FRONT_LEFT_RIGHT
+                             | DCA_EXSS_FRONT_HIGH_LEFT_RIGHT
+                             | DCA_EXSS_WIDE_LEFT_RIGHT
+                             | DCA_EXSS_SIDE_LEFT_RIGHT
+                             | DCA_EXSS_SIDE_HIGH_LEFT_RIGHT
+                             | DCA_EXSS_SIDE_REAR_LEFT_RIGHT
+                             | DCA_EXSS_REAR_LEFT_RIGHT
+                             | DCA_EXSS_REAR_HIGH_LEFT_RIGHT
+                             ));
 }
 
 /**
@@ -1425,9 +1453,9 @@ static int dca_exss_parse_asset_header(DCAContext *s)
 
     if (s->static_fields) {
         if (get_bits1(&s->gb))
-            skip_bits(&s->gb, 4); // asset type descriptor
+            skip_bits(&s->gb, 4);  // asset type descriptor
         if (get_bits1(&s->gb))
-            skip_bits_long(&s->gb, 24); // language descriptor
+            skip_bits_long(&s->gb, 24);  // language descriptor
 
         if (get_bits1(&s->gb)) {
             /* How can one fit 1024 bytes of text here if the maximum value
@@ -1475,7 +1503,6 @@ static int dca_exss_parse_asset_header(DCAContext *s)
                     skip_bits_long(&s->gb, num_dec_ch * 5); // remap codes
                 }
             }
-
         } else {
             skip_bits(&s->gb, 3); // representation type
         }
@@ -1483,28 +1510,28 @@ static int dca_exss_parse_asset_header(DCAContext *s)
 
     drc_code_present = get_bits1(&s->gb);
     if (drc_code_present)
-        get_bits(&s->gb, 8); // drc code
+        get_bits(&s->gb, 8);  // drc code
 
     if (get_bits1(&s->gb))
-        skip_bits(&s->gb, 5); // dialog normalization code
+        skip_bits(&s->gb, 5);  // dialog normalization code
 
     if (drc_code_present && embedded_stereo)
-        get_bits(&s->gb, 8); // drc stereo code
+        get_bits(&s->gb, 8);  // drc stereo code
 
     if (s->mix_metadata && get_bits1(&s->gb)) {
         skip_bits(&s->gb, 1); // external mix
         skip_bits(&s->gb, 6); // post mix gain code
 
         if (get_bits(&s->gb, 2) != 3) // mixer drc code
-            skip_bits(&s->gb, 3); // drc limit
+            skip_bits(&s->gb, 3);  // drc limit
         else
-            skip_bits(&s->gb, 8); // custom drc code
+            skip_bits(&s->gb, 8);  // custom drc code
 
         if (get_bits1(&s->gb)) // channel specific scaling
             for (i = 0; i < s->num_mix_configs; i++)
-                skip_bits_long(&s->gb, s->mix_config_num_ch[i] * 6); // scale 
codes
+                skip_bits_long(&s->gb, s->mix_config_num_ch[i] * 6);  // scale 
codes
         else
-            skip_bits_long(&s->gb, s->num_mix_configs * 6); // scale codes
+            skip_bits_long(&s->gb, s->num_mix_configs * 6);  // scale codes
 
         for (i = 0; i < s->num_mix_configs; i++) {
             if (get_bits_left(&s->gb) < 0)
@@ -1521,7 +1548,7 @@ static int dca_exss_parse_asset_header(DCAContext *s)
     case 0: extensions_mask = get_bits(&s->gb, 12); break;
     case 1: extensions_mask = DCA_EXT_EXSS_XLL;     break;
     case 2: extensions_mask = DCA_EXT_EXSS_LBR;     break;
-    case 3: extensions_mask = 0; /* aux coding */   break;
+    case 3: extensions_mask = 0; /* aux coding */ break;
     }
 
     /* not parsed further, we were only interested in the extensions mask */
@@ -1578,7 +1605,7 @@ static void dca_exss_parse_header(DCAContext *s)
         skip_bits(&s->gb, 3); // frame duration code
 
         if (get_bits1(&s->gb))
-            skip_bits_long(&s->gb, 36); // timestamp
+            skip_bits_long(&s->gb, 36);  // timestamp
 
         /* a single stream can contain multiple audio assets that can be
          * combined to form multiple audio presentations */
@@ -1603,7 +1630,7 @@ static void dca_exss_parse_header(DCAContext *s)
         for (i = 0; i < num_audiop; i++)
             for (j = 0; j <= ss_index; j++)
                 if (active_ss_mask[i] & (1 << j))
-                    skip_bits(&s->gb, 8); // active asset mask
+                    skip_bits(&s->gb, 8);  // active asset mask
 
         s->mix_metadata = get_bits1(&s->gb);
         if (s->mix_metadata) {
@@ -1621,7 +1648,7 @@ static void dca_exss_parse_header(DCAContext *s)
     }
 
     for (i = 0; i < num_assets; i++)
-        skip_bits_long(&s->gb, 16 + 4 * blownup); // asset size
+        skip_bits_long(&s->gb, 16 + 4 * blownup);  // asset size
 
     for (i = 0; i < num_assets; i++) {
         if (dca_exss_parse_asset_header(s))
@@ -1693,7 +1720,6 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
     /* only scan for extensions if ext_descr was unknown or indicated a
      * supported XCh extension */
     if (s->core_ext_mask < 0 || s->core_ext_mask & DCA_EXT_XCH) {
-
         /* if ext_descr was unknown, clear s->core_ext_mask so that the
          * extensions scan can fill it up */
         s->core_ext_mask = FFMAX(s->core_ext_mask, 0);
@@ -1701,72 +1727,72 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
         /* extensions start at 32-bit boundaries into bitstream */
         skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
 
-    while(core_ss_end - get_bits_count(&s->gb) >= 32) {
-        uint32_t bits = get_bits_long(&s->gb, 32);
+        while (core_ss_end - get_bits_count(&s->gb) >= 32) {
+            uint32_t bits = get_bits_long(&s->gb, 32);
 
-        switch(bits) {
-        case 0x5a5a5a5a: {
-            int ext_amode, xch_fsize;
+            switch (bits) {
+            case 0x5a5a5a5a: {
+                int ext_amode, xch_fsize;
 
-            s->xch_base_channel = s->prim_channels;
+                s->xch_base_channel = s->prim_channels;
 
-            /* validate sync word using XCHFSIZE field */
-            xch_fsize = show_bits(&s->gb, 10);
-            if((s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + 
xch_fsize) &&
-               (s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + xch_fsize 
+ 1))
-                continue;
+                /* validate sync word using XCHFSIZE field */
+                xch_fsize = show_bits(&s->gb, 10);
+                if ((s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + 
xch_fsize) &&
+                    (s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + 
xch_fsize + 1))
+                    continue;
 
-            /* skip length-to-end-of-frame field for the moment */
-            skip_bits(&s->gb, 10);
+                /* skip length-to-end-of-frame field for the moment */
+                skip_bits(&s->gb, 10);
 
-            s->core_ext_mask |= DCA_EXT_XCH;
+                s->core_ext_mask |= DCA_EXT_XCH;
 
-            /* extension amode should == 1, number of channels in extension */
-            /* AFAIK XCh is not used for more channels */
-            if ((ext_amode = get_bits(&s->gb, 4)) != 1) {
-                av_log(avctx, AV_LOG_ERROR, "XCh extension amode %d not"
-                       " supported!\n",ext_amode);
-                continue;
-            }
+                /* extension amode should == 1, number of channels in 
extension */
+                /* AFAIK XCh is not used for more channels */
+                if ((ext_amode = get_bits(&s->gb, 4)) != 1) {
+                    av_log(avctx, AV_LOG_ERROR, "XCh extension amode %d not"
+                           " supported!\n", ext_amode);
+                    continue;
+                }
 
-            /* much like core primary audio coding header */
-            dca_parse_audio_coding_header(s, s->xch_base_channel);
+                /* much like core primary audio coding header */
+                dca_parse_audio_coding_header(s, s->xch_base_channel);
 
-            for (i = 0; i < (s->sample_blocks / 8); i++) {
-                if ((ret = dca_decode_block(s, s->xch_base_channel, i))) {
-                    av_log(avctx, AV_LOG_ERROR, "error decoding XCh 
extension\n");
-                    continue;
+                for (i = 0; i < (s->sample_blocks / 8); i++) {
+                    if ((ret = dca_decode_block(s, s->xch_base_channel, i))) {
+                        av_log(avctx, AV_LOG_ERROR, "error decoding XCh 
extension\n");
+                        continue;
+                    }
                 }
+
+                s->xch_present = 1;
+                break;
             }
+            case 0x47004a03:
+                /* XXCh: extended channels */
+                /* usually found either in core or HD part in DTS-HD HRA 
streams,
+                 * but not in DTS-ES which contains XCh extensions instead */
+                s->core_ext_mask |= DCA_EXT_XXCH;
+                break;
+
+            case 0x1d95f262: {
+                int fsize96 = show_bits(&s->gb, 12) + 1;
+                if (s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + 
fsize96)
+                    continue;
 
-            s->xch_present = 1;
-            break;
-        }
-        case 0x47004a03:
-            /* XXCh: extended channels */
-            /* usually found either in core or HD part in DTS-HD HRA streams,
-             * but not in DTS-ES which contains XCh extensions instead */
-            s->core_ext_mask |= DCA_EXT_XXCH;
-            break;
-
-        case 0x1d95f262: {
-            int fsize96 = show_bits(&s->gb, 12) + 1;
-            if (s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + fsize96)
-                continue;
-
-            av_log(avctx, AV_LOG_DEBUG, "X96 extension found at %d bits\n", 
get_bits_count(&s->gb));
-            skip_bits(&s->gb, 12);
-            av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", fsize96);
-            av_log(avctx, AV_LOG_DEBUG, "REVNO = %d\n", get_bits(&s->gb, 4));
-
-            s->core_ext_mask |= DCA_EXT_X96;
-            break;
-        }
-        }
+                av_log(avctx, AV_LOG_DEBUG, "X96 extension found at %d bits\n",
+                       get_bits_count(&s->gb));
+                skip_bits(&s->gb, 12);
+                av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", fsize96);
+                av_log(avctx, AV_LOG_DEBUG, "REVNO = %d\n", get_bits(&s->gb, 
4));
 
-        skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
-    }
+                s->core_ext_mask |= DCA_EXT_X96;
+                break;
+            }
+            }
 
+            skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
+        }
     } else {
         /* no supported extensions, skip the rest of the core substream */
         skip_bits_long(&s->gb, core_ss_end - get_bits_count(&s->gb));
@@ -1786,7 +1812,7 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
 
     channels = s->prim_channels + !!s->lfe;
 
-    if (s->amode<16) {
+    if (s->amode < 16) {
         avctx->channel_layout = dca_core_channel_layout[s->amode];
 
         if (s->xch_present && (!avctx->request_channels ||
@@ -1818,7 +1844,7 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
             avctx->channel_layout = AV_CH_LAYOUT_STEREO;
         }
     } else {
-        av_log(avctx, AV_LOG_ERROR, "Non standard configuration %d 
!\n",s->amode);
+        av_log(avctx, AV_LOG_ERROR, "Non standard configuration %d !\n", 
s->amode);
         return AVERROR_INVALIDDATA;
     }
 
@@ -1844,8 +1870,8 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
         return ret;
     }
-    samples_flt = (float   *)s->frame.data[0];
-    samples_s16 = (int16_t *)s->frame.data[0];
+    samples_flt = (float   *) s->frame.data[0];
+    samples_s16 = (int16_t *) s->frame.data[0];
 
     /* filter to get final output */
     for (i = 0; i < (s->sample_blocks / 8); i++) {
@@ -1853,10 +1879,10 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
 
         /* If this was marked as a DTS-ES stream we need to subtract back- */
         /* channel from SL & SR to remove matrixed back-channel signal */
-        if((s->source_pcm_res & 1) && s->xch_present) {
-            float* back_chan = s->samples + 
s->channel_order_tab[s->xch_base_channel] * 256;
-            float* lt_chan   = s->samples + 
s->channel_order_tab[s->xch_base_channel - 2] * 256;
-            float* rt_chan   = s->samples + 
s->channel_order_tab[s->xch_base_channel - 1] * 256;
+        if ((s->source_pcm_res & 1) && s->xch_present) {
+            float *back_chan = s->samples + 
s->channel_order_tab[s->xch_base_channel] * 256;
+            float *lt_chan = s->samples + 
s->channel_order_tab[s->xch_base_channel - 2] * 256;
+            float *rt_chan = s->samples + 
s->channel_order_tab[s->xch_base_channel - 1] * 256;
             s->dsp.vector_fmac_scalar(lt_chan, back_chan, -M_SQRT1_2, 256);
             s->dsp.vector_fmac_scalar(rt_chan, back_chan, -M_SQRT1_2, 256);
         }
@@ -1879,8 +1905,8 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
         s->lfe_data[i] = s->lfe_data[i + lfe_samples];
     }
 
-    *got_frame_ptr   = 1;
-    *(AVFrame *)data = s->frame;
+    *got_frame_ptr = 1;
+    *(AVFrame *) data = s->frame;
 
     return buf_size;
 }
@@ -1893,7 +1919,7 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
  * @param avctx     pointer to the AVCodecContext
  */
 
-static av_cold int dca_decode_init(AVCodecContext * avctx)
+static av_cold int dca_decode_init(AVCodecContext *avctx)
 {
     DCAContext *s = avctx->priv_data;
     int i;
@@ -1907,7 +1933,7 @@ static av_cold int dca_decode_init(AVCodecContext * avctx)
     ff_dcadsp_init(&s->dcadsp);
     ff_fmt_convert_init(&s->fmt_conv, avctx);
 
-    for (i = 0; i < DCA_PRIM_CHANNELS_MAX+1; i++)
+    for (i = 0; i < DCA_PRIM_CHANNELS_MAX + 1; i++)
         s->samples_chanptr[i] = s->samples + i * 256;
 
     if (avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT) {
@@ -1930,7 +1956,7 @@ static av_cold int dca_decode_init(AVCodecContext * avctx)
     return 0;
 }
 
-static av_cold int dca_decode_end(AVCodecContext * avctx)
+static av_cold int dca_decode_end(AVCodecContext *avctx)
 {
     DCAContext *s = avctx->priv_data;
     ff_mdct_end(&s->imdct);
@@ -1947,17 +1973,18 @@ static const AVProfile profiles[] = {
 };
 
 AVCodec ff_dca_decoder = {
-    .name = "dca",
-    .type = AVMEDIA_TYPE_AUDIO,
-    .id = CODEC_ID_DTS,
-    .priv_data_size = sizeof(DCAContext),
-    .init = dca_decode_init,
-    .decode = dca_decode_frame,
-    .close = dca_decode_end,
-    .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
-    .capabilities = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
-    .sample_fmts = (const enum AVSampleFormat[]) {
-        AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
-    },
-    .profiles = NULL_IF_CONFIG_SMALL(profiles),
+    .name               = "dca",
+    .type               = AVMEDIA_TYPE_AUDIO,
+    .id                 = CODEC_ID_DTS,
+    .priv_data_size     = sizeof(DCAContext),
+    .init               = dca_decode_init,
+    .decode             = dca_decode_frame,
+    .close              = dca_decode_end,
+    .long_name          = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
+    .capabilities       = CODEC_CAP_CHANNEL_CONF | CODEC_CAP_DR1,
+    .sample_fmts        = (const enum AVSampleFormat[]) {
+                                AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16,
+                                AV_SAMPLE_FMT_NONE
+                          },
+    .profiles           = NULL_IF_CONFIG_SMALL(profiles),
 };

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to