[FFmpeg-cvslog] r9693 - trunk/libavcodec/cook.c

mhoffman subversion
Mon Jul 16 03:28:58 CEST 2007


Author: mhoffman
Date: Mon Jul 16 03:28:58 2007
New Revision: 9693

Log:
separating saturation codes so that we can support other data formats

Modified:
   trunk/libavcodec/cook.c

Modified: trunk/libavcodec/cook.c
==============================================================================
--- trunk/libavcodec/cook.c	(original)
+++ trunk/libavcodec/cook.c	Mon Jul 16 03:28:58 2007
@@ -819,6 +819,26 @@ decode_bytes_and_gain(COOKContext *q, ui
     FFSWAP(int *, gains_ptr->now, gains_ptr->previous);
 }
 
+ /**
+ * Saturate the output signal to signed 16bit integers.
+ *
+ * @param q                 pointer to the COOKContext
+ * @param chan              channel to saturate
+ * @param out               pointer to the output vector
+ */
+static void
+saturate_output_float (COOKContext *q, int chan, int16_t *out)
+{
+    int j;
+    float_t *output = q->mono_mdct_output + q->samples_per_channel;
+    /* Clip and convert floats to 16 bits.
+     */
+    for (j = 0; j < q->samples_per_channel; j++) {
+        out[chan + q->nb_channels * j] =
+          av_clip(lrintf(output[j]), -32768, 32767);
+    }
+}
+
 /**
  * Final part of subpacket decoding:
  *  Apply modulated lapped transform, gain compensation,
@@ -837,17 +857,8 @@ mlt_compensate_output(COOKContext *q, fl
                       cook_gains *gains, float *previous_buffer,
                       int16_t *out, int chan)
 {
-    float *output = q->mono_mdct_output + q->samples_per_channel;
-    int j;
-
     imlt_gain(q, decode_buffer, gains, previous_buffer);
-
-    /* Clip and convert floats to 16 bits.
-     */
-    for (j = 0; j < q->samples_per_channel; j++) {
-        out[chan + q->nb_channels * j] =
-          av_clip(lrintf(output[j]), -32768, 32767);
-    }
+    saturate_output_float (q, chan, out);
 }
 
 




More information about the ffmpeg-cvslog mailing list