summaryrefslogtreecommitdiff
path: root/src/libac3/rematrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libac3/rematrix.c')
-rw-r--r--src/libac3/rematrix.c86
1 files changed, 36 insertions, 50 deletions
diff --git a/src/libac3/rematrix.c b/src/libac3/rematrix.c
index 95ce0117c..7098f0526 100644
--- a/src/libac3/rematrix.c
+++ b/src/libac3/rematrix.c
@@ -22,74 +22,60 @@
*
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <stdlib.h>
#include <stdio.h>
#include "ac3.h"
#include "ac3_internal.h"
+#include "decode.h"
#include "rematrix.h"
-
struct rematrix_band_s
{
- uint32_t start;
- uint32_t end;
-} rematrix_band[] = {
- {13, 24},
- {25, 36},
- {37, 60},
- {61, 252}
+ uint32_t start;
+ uint32_t end;
};
+struct rematrix_band_s rematrix_band[] = { {13,24}, {25,36}, {37 ,60}, {61,252}};
-/**
- *
- **/
+static inline uint32_t min(uint32_t a,uint32_t b);
-inline uint32_t min (uint32_t a, uint32_t b)
+static inline uint32_t
+min(uint32_t a,uint32_t b)
{
- return (a < b) ? a : b;
+ return (a < b ? a : b);
}
-
-/**
- * This routine simply does stereo remartixing for the 2 channel
- * stereo mode
- **/
-
-void rematrix (audblk_t *audblk, stream_samples_t samples)
+/* This routine simply does stereo rematixing for the 2 channel
+ * stereo mode */
+void rematrix(audblk_t *audblk, stream_samples_t samples)
{
- uint32_t num_bands;
- uint32_t start;
- uint32_t end;
- int i,j;
-
- if (!audblk->cplinu || audblk->cplbegf > 2)
- num_bands = 4;
- else if (audblk->cplbegf > 0)
- num_bands = 3;
- else
- num_bands = 2;
-
- for (i=0; i < num_bands; i++) {
- if (!audblk->rematflg[i])
- continue;
-
- start = rematrix_band[i].start;
- end = min (rematrix_band[i].end ,12 * audblk->cplbegf + 36);
+ uint32_t num_bands;
+ uint32_t start;
+ uint32_t end;
+ uint32_t i,j;
+ float left,right;
+
+ if(!audblk->cplinu || audblk->cplbegf > 2)
+ num_bands = 4;
+ else if (audblk->cplbegf > 0)
+ num_bands = 3;
+ else
+ num_bands = 2;
+
+ for(i=0;i < num_bands; i++) {
+ if(!audblk->rematflg[i])
+ continue;
+
+ start = rematrix_band[i].start;
+ end = min(rematrix_band[i].end ,12 * audblk->cplbegf + 36);
- for (j=start;j < end; j++) {
- float left,right;
-
- left = samples[0][j] + samples[1][j];
- right = samples[0][j] - samples[1][j];
- samples[0][j] = left;
- samples[1][j] = right;
- }
+ for(j=start;j < end; j++) {
+ left = samples[0][j] + samples[1][j];
+ right = samples[0][j] - samples[1][j];
+ samples[0][j] = left;
+ samples[1][j] = right;
}
+ }
}