diff --git a/libavcodec/dca.c b/libavcodec/dca.c
index e3f87b9..d602426 100644
--- a/libavcodec/dca.c
+++ b/libavcodec/dca.c
@@ -129,26 +129,42 @@ static const int dca_ext_audio_descr_mask[] = {
  */
 
 static const uint64_t dca_core_channel_layout[] = {
-    AV_CH_FRONT_CENTER,                                                      
///< 1, A
-    AV_CH_LAYOUT_STEREO,                                                     
///< 2, A + B (dual mono)
-    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_FRONT_CENTER,                                                     
///< 1, A
+    AV_CH_LAYOUT_STEREO,                                                    
///< 2, A + B (dual mono)
+    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
 };
 
 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] = {
@@ -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,15 @@ static av_cold void dca_init_vlcs(void)
     }
 
     for (i = 0; i < 10; i++)
-        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],
+        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],
                      bitalloc_sizes[i],
                      bitalloc_bits[i][j], 1, 1,
                      bitalloc_codes[i][j], 2, 2, INIT_VLC_USE_NEW_STATIC);
@@ -433,11 +451,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 +512,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 +537,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 +638,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;
@@ -631,7 +655,7 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
         return AVERROR_INVALIDDATA;
 
     if (!base_channel) {
-        s->subsubframes[s->current_subframe] = get_bits(&s->gb, 2) + 1;
+        s->subsubframes[s->current_subframe]    = get_bits(&s->gb, 2) + 1;
         s->partial_samples[s->current_subframe] = get_bits(&s->gb, 3);
     }
 
@@ -693,7 +717,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;
@@ -811,9 +836,11 @@ static int dca_subframe_header(DCAContext * s, int 
base_channel, int block_index
     }
 
 #ifdef TRACE
-    av_log(s->avctx, AV_LOG_DEBUG, "subsubframes: %i\n", 
s->subsubframes[s->current_subframe]);
+    av_log(s->avctx, AV_LOG_DEBUG, "subsubframes: %i\n",
+           s->subsubframes[s->current_subframe]);
     av_log(s->avctx, AV_LOG_DEBUG, "partial samples: %i\n",
            s->partial_samples[s->current_subframe]);
+
     for (j = base_channel; j < s->prim_channels; j++) {
         av_log(s->avctx, AV_LOG_DEBUG, "prediction mode:");
         for (k = 0; k < s->subband_activity[j]; k++)
@@ -822,12 +849,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 +890,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 +914,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 +924,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 +938,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 +1011,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]];
     }
@@ -1027,9 +1055,9 @@ static void dca_downmix(float *samples, int srcfmt,
         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 +1077,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 +1104,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 +1147,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);
@@ -1143,19 +1172,19 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
                                    "ERROR: block code look-up failed\n");
                             return AVERROR_INVALIDDATA;
                         }
-                    }else{
+                    } else {
                         /* no coding */
                         for (m = 0; m < 8; m++)
                             block[m] = get_sbits(&s->gb, abits - 3);
                     }
-                }else{
+                } else {
                     /* Huffman coded */
                     for (m = 0; m < 8; m++)
                         block[m] = get_bitalloc(&s->gb, 
&dca_smpl_bitalloc[abits], sel);
                 }
 
                 s->fmt_conv.int32_to_float_fmul_scalar(subband_samples[k][l],
-                                                  block, rscale, 8);
+                                                       block, rscale, 8);
             }
 
             /*
@@ -1187,7 +1216,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;
             }
 
@@ -1211,13 +1241,14 @@ static int dca_subsubframe(DCAContext * s, int 
base_channel, int block_index)
     /* Backup predictor history for adpcm */
     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]));
+            memcpy(s->subband_samples_hist[k][l],
+                   &subband_samples[k][l][4],
+                   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 +1257,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 +1271,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 +1279,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 +1311,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 +1359,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 +1368,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;
@@ -1373,17 +1404,15 @@ 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));
 }
 
 /**
@@ -1569,7 +1598,7 @@ static void dca_exss_parse_header(DCAContext *s)
     ss_index = get_bits(&s->gb, 2);
 
     blownup = get_bits1(&s->gb);
-    skip_bits(&s->gb, 8 + 4 * blownup); // header_size
+    skip_bits(&s->gb,  8 + 4 * blownup); // header_size
     skip_bits(&s->gb, 16 + 4 * blownup); // hd_size
 
     s->static_fields = get_bits1(&s->gb);
@@ -1614,14 +1643,14 @@ static void dca_exss_parse_header(DCAContext *s)
             s->num_mix_configs = get_bits(&s->gb, 2) + 1;
 
             for (i = 0; i < s->num_mix_configs; i++) {
-                int mix_out_mask = get_bits(&s->gb, mix_out_mask_size);
+                int mix_out_mask        = get_bits(&s->gb, mix_out_mask_size);
                 s->mix_config_num_ch[i] = dca_exss_mask2count(mix_out_mask);
             }
         }
     }
 
     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))
@@ -1668,8 +1697,8 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
     }
     //set AVCodec values with parsed data
     avctx->sample_rate = s->sample_rate;
-    avctx->bit_rate = s->bit_rate;
-    avctx->frame_size = s->sample_blocks * 32;
+    avctx->bit_rate    = s->bit_rate;
+    avctx->frame_size  = s->sample_blocks * 32;
 
     s->profile = FF_PROFILE_DTS;
 
@@ -1701,72 +1730,71 @@ 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;
-
-            /* skip length-to-end-of-frame field for the moment */
-            skip_bits(&s->gb, 10);
-
-            s->core_ext_mask |= DCA_EXT_XCH;
+                /* 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;
 
-            /* 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;
-            }
+                /* skip length-to-end-of-frame field for the moment */
+                skip_bits(&s->gb, 10);
 
-            /* much like core primary audio coding header */
-            dca_parse_audio_coding_header(s, s->xch_base_channel);
+                s->core_ext_mask |= DCA_EXT_XCH;
 
-            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");
+                /* extension amode(number of channels in extension) should be 
1 */
+                /* 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);
+
+                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));
@@ -1778,15 +1806,15 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
         s->profile = FF_PROFILE_DTS_ES;
 
     /* check for ExSS (HD part) */
-    if (s->dca_buffer_size - s->frame_size > 32
-        && get_bits_long(&s->gb, 32) == DCA_HD_MARKER)
+    if (s->dca_buffer_size - s->frame_size > 32 &&
+        get_bits_long(&s->gb, 32) == DCA_HD_MARKER)
         dca_exss_parse_header(s);
 
     avctx->profile = s->profile;
 
     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 +1846,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 +1872,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 +1881,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);
         }
@@ -1875,12 +1903,11 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
 
     /* update lfe history */
     lfe_samples = 2 * s->lfe * (s->sample_blocks / 8);
-    for (i = 0; i < 2 * s->lfe * 4; i++) {
+    for (i = 0; i < 2 * s->lfe * 4; i++)
         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 +1920,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,15 +1934,15 @@ 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) {
         avctx->sample_fmt = AV_SAMPLE_FMT_FLT;
-        s->scale_bias = 1.0 / 32768.0;
+        s->scale_bias     = 1.0 / 32768.0;
     } else {
         avctx->sample_fmt = AV_SAMPLE_FMT_S16;
-        s->scale_bias = 1.0;
+        s->scale_bias     = 1.0;
     }
 
     /* allow downmixing to stereo */
@@ -1930,7 +1957,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 +1974,17 @@ 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