summaryrefslogtreecommitdiff
path: root/src/libac3/rematrix.c
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2001-05-26 15:07:18 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2001-05-26 15:07:18 +0000
commit2bb1b8f3a4984075743b17fbe1d00b1af9917254 (patch)
tree06aa3a03497e938d80a7146013fef96324ef073c /src/libac3/rematrix.c
parent65480cd3d11b465f0ede5f6c3d1b9f12e06dc98b (diff)
downloadxine-lib-2bb1b8f3a4984075743b17fbe1d00b1af9917254.tar.gz
xine-lib-2bb1b8f3a4984075743b17fbe1d00b1af9917254.tar.bz2
switch to walken's libac3 and minor bugfixes
CVS patchset: 83 CVS date: 2001/05/26 15:07:18
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;
}
+ }
}