ac3enc: remove right shifting from lshift_tab() and make lshift unsigned.
[ffmpeg.git] / libavcodec / ac3enc_fixed.c
index 6505b7a0eac3bcd174249d85375f1f4bc69c3592..ff400b8aaffcfbf313a1c43839b5804c5adc14d4 100644 (file)
@@ -26,6 +26,7 @@
  * fixed-point AC-3 encoder.
  */
 
+#undef CONFIG_AC3ENC_FLOAT
 #include "ac3enc.c"
 
 
@@ -250,7 +251,7 @@ static void mdct512(AC3MDCTContext *mdct, int32_t *out, int16_t *in)
 /**
  * Apply KBD window to input samples prior to MDCT.
  */
-static void apply_window(int16_t *output, const int16_t *input,
+static void apply_window(DSPContext *dsp, int16_t *output, const int16_t *input,
                          const int16_t *window, int n)
 {
     int i;
@@ -285,19 +286,15 @@ static int log2_tab(int16_t *tab, int n)
  * Left-shift each value in an array by a specified amount.
  * @param tab    input array
  * @param n      number of values in the array
- * @param lshift left shift amount. a negative value means right shift.
+ * @param lshift left shift amount
  */
-static void lshift_tab(int16_t *tab, int n, int lshift)
+static void lshift_tab(int16_t *tab, int n, unsigned int lshift)
 {
     int i;
 
     if (lshift > 0) {
         for (i = 0; i < n; i++)
             tab[i] <<= lshift;
-    } else if (lshift < 0) {
-        lshift = -lshift;
-        for (i = 0; i < n; i++)
-            tab[i] >>= lshift;
     }
 }
 
@@ -318,6 +315,17 @@ static int normalize_samples(AC3EncodeContext *s)
 }
 
 
+/**
+ * Scale MDCT coefficients from float to fixed-point.
+ */
+static void scale_coefficients(AC3EncodeContext *s)
+{
+    /* scaling/conversion is obviously not needed for the fixed-point encoder
+       since the coefficients are already fixed-point. */
+    return;
+}
+
+
 #ifdef TEST
 /*************************************************************************/
 /* TEST */
@@ -413,8 +421,8 @@ int main(void)
 #endif /* TEST */
 
 
-AVCodec ac3_encoder = {
-    "ac3",
+AVCodec ff_ac3_fixed_encoder = {
+    "ac3_fixed",
     AVMEDIA_TYPE_AUDIO,
     CODEC_ID_AC3,
     sizeof(AC3EncodeContext),