[FFmpeg-soc] [soc]: r5432 - in amr: amr-ffmpeg.diff amrnbdec.c

vitor subversion at mplayerhq.hu
Tue Nov 10 05:39:15 CET 2009


Author: vitor
Date: Tue Nov 10 05:39:15 2009
New Revision: 5432

Log:
Update to latest svn

Modified:
   amr/amr-ffmpeg.diff
   amr/amrnbdec.c

Modified: amr/amr-ffmpeg.diff
==============================================================================
--- amr/amr-ffmpeg.diff	Mon Nov  9 09:08:16 2009	(r5431)
+++ amr/amr-ffmpeg.diff	Tue Nov 10 05:39:15 2009	(r5432)
@@ -1,32 +1,32 @@
 Index: libavcodec/Makefile
 ===================================================================
---- libavcodec/Makefile	(revision 19653)
+--- libavcodec/Makefile	(revision 20451)
 +++ libavcodec/Makefile	(working copy)
-@@ -42,6 +42,7 @@
+@@ -51,6 +51,7 @@
  OBJS-$(CONFIG_AC3_ENCODER)             += ac3enc.o ac3tab.o ac3.o
  OBJS-$(CONFIG_ALAC_DECODER)            += alac.o
- OBJS-$(CONFIG_ALAC_ENCODER)            += alacenc.o lpc.o
-+OBJS-$(CONFIG_AMRNB_DECODER)           += amrnbdec.o celp_filters.o celp_math.o acelp_filters.o acelp_vectors.o lsp.o
+ OBJS-$(CONFIG_ALAC_ENCODER)            += alacenc.o
++OBJS-$(CONFIG_AMRNB_DECODER)           += amrnbdec.o celp_filters.o celp_math.o acelp_filters.o acelp_vectors.o lsp.o acelp_pitch_delay.o
  OBJS-$(CONFIG_AMV_DECODER)             += sp5xdec.o mjpegdec.o mjpeg.o
  OBJS-$(CONFIG_APE_DECODER)             += apedec.o
  OBJS-$(CONFIG_ASV1_DECODER)            += asv1.o mpeg12data.o
 Index: libavcodec/allcodecs.c
 ===================================================================
---- libavcodec/allcodecs.c	(revision 19653)
+--- libavcodec/allcodecs.c	(revision 20451)
 +++ libavcodec/allcodecs.c	(working copy)
-@@ -198,6 +198,7 @@
+@@ -199,6 +199,7 @@
      REGISTER_ENCDEC  (AAC, aac);
      REGISTER_ENCDEC  (AC3, ac3);
      REGISTER_ENCDEC  (ALAC, alac);
 +    REGISTER_DECODER (AMRNB, amrnb);
      REGISTER_DECODER (APE, ape);
+     REGISTER_DECODER (ATRAC1, atrac1);
      REGISTER_DECODER (ATRAC3, atrac3);
-     REGISTER_DECODER (COOK, cook);
 Index: doc/general.texi
 ===================================================================
---- doc/general.texi	(revision 19653)
+--- doc/general.texi	(revision 20451)
 +++ doc/general.texi	(working copy)
-@@ -523,8 +523,8 @@
+@@ -527,8 +527,8 @@
  @item ADPCM Westwood Studios IMA @tab     @tab  X
      @tab Used in Westwood Studios games like Command and Conquer.
  @item ADPCM Yamaha           @tab  X  @tab  X
@@ -39,125 +39,13 @@ Index: doc/general.texi
  @item Apple lossless audio   @tab  X  @tab  X
 Index: Changelog
 ===================================================================
---- Changelog	(revision 19653)
+--- Changelog	(revision 20451)
 +++ Changelog	(working copy)
-@@ -32,6 +32,7 @@
- - RTMP support in libavformat
- - noX handling for OPT_BOOL X options
- - Wave64 demuxer
+@@ -41,6 +41,7 @@
+ - Atrac1 decoder
+ - MD STUDIO audio demuxer
+ - RF64 support in WAV demuxer
 +- AMR-NB decoder
  
  
  
-Index: libavcodec/acelp_vectors.c
-===================================================================
---- libavcodec/acelp_vectors.c	(revision 19653)
-+++ libavcodec/acelp_vectors.c	(working copy)
-@@ -22,6 +22,7 @@
- 
- #include <inttypes.h>
- #include "avcodec.h"
-+#include "celp_math.h"
- #include "acelp_vectors.h"
- 
- const uint8_t ff_fc_2pulses_9bits_track1[16] =
-@@ -155,3 +156,14 @@
-         out[i] = weight_coeff_a * in_a[i]
-                + weight_coeff_b * in_b[i];
- }
-+
-+void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
-+                                             float sum_of_squares, const int n)
-+{
-+    int i;
-+    float scalefactor = ff_dot_productf(in, in, n);
-+    if (scalefactor)
-+        scalefactor = sqrt(sum_of_squares / scalefactor);
-+    for (i = 0; i < n; i++)
-+        out[i] = in[i] * scalefactor;
-+}
-Index: libavcodec/acelp_vectors.h
-===================================================================
---- libavcodec/acelp_vectors.h	(revision 19653)
-+++ libavcodec/acelp_vectors.h	(working copy)
-@@ -164,4 +164,22 @@
- void ff_weighted_vector_sumf(float *out, const float *in_a, const float *in_b,
-                              float weight_coeff_a, float weight_coeff_b, int length);
- 
-+/**
-+ * Set the sum of squares of a signal by scaling
-+ *
-+ * @param out output samples
-+ * @param in input samples
-+ * @param sum_of_squares new sum of squares
-+ * @param n number of samples
-+ *
-+ * @note If the input is zero (or its energy underflows), the output is zero.
-+ *       This is the behavior of AGC in the AMR reference decoder. The QCELP
-+ *       reference decoder seems to have undefined behavior.
-+ *
-+ * TIA/EIA/IS-733 2.4.8.3-2/3/4/5, 2.4.8.6
-+ * 3GPP TS 26.090 6.1 (6)
-+ */
-+void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
-+                                             float sum_of_squares, const int n);
-+
- #endif /* AVCODEC_ACELP_VECTORS_H */
-Index: libavcodec/qcelpdec.c
-===================================================================
---- libavcodec/qcelpdec.c	(revision 19653)
-+++ libavcodec/qcelpdec.c	(working copy)
-@@ -406,31 +406,6 @@
- }
- 
- /**
-- * Compute the gain control
-- *
-- * @param v_in gain-controlled vector
-- * @param v_ref vector to control gain of
-- *
-- * @return gain control
-- *
-- * FIXME: If v_ref is a zero vector, it energy is zero
-- *        and the behavior of the gain control is
-- *        undefined in the specs.
-- *
-- * TIA/EIA/IS-733 2.4.8.3-2/3/4/5, 2.4.8.6
-- */
--static float compute_gain_ctrl(const float *v_ref, const float *v_in, const int len)
--{
--    float scalefactor = ff_dot_productf(v_in, v_in, len);
--
--    if(scalefactor)
--        scalefactor = sqrt(ff_dot_productf(v_ref, v_ref, len) / scalefactor);
--    else
--        av_log_missing_feature(NULL, "Zero energy for gain control", 1);
--    return scalefactor;
--}
--
--/**
-  * Apply generic gain control.
-  *
-  * @param v_out output vector
-@@ -442,15 +417,13 @@
- static void apply_gain_ctrl(float *v_out, const float *v_ref,
-                             const float *v_in)
- {
--    int   i, j, len;
--    float scalefactor;
-+    int i;
- 
--    for(i=0, j=0; i<4; i++)
--    {
--        scalefactor = compute_gain_ctrl(v_ref + j, v_in + j, 40);
--        for(len=j+40; j<len; j++)
--            v_out[j] = scalefactor * v_in[j];
--    }
-+    for (i = 0; i < 160; i += 40)
-+        ff_scale_vector_to_given_sum_of_squares(v_out + i, v_in + i,
-+                                                ff_dot_productf(v_ref + i,
-+                                                                v_ref + i, 40),
-+                                                40);
- }
- 
- /**

Modified: amr/amrnbdec.c
==============================================================================
--- amr/amrnbdec.c	Mon Nov  9 09:08:16 2009	(r5431)
+++ amr/amrnbdec.c	Tue Nov 10 05:39:15 2009	(r5432)
@@ -354,7 +354,7 @@ static void lsp2lpc(const float *lsp, fl
     for (i = 0; i < LP_FILTER_ORDER; i++)
         lsp_double[i] = lsp[i];
 
-    ff_acelp_lspd2lpc(lsp_double, lpc_coeffs);
+    ff_acelp_lspd2lpc(lsp_double, lpc_coeffs, 5);
 }
 
 /// @}


More information about the FFmpeg-soc mailing list