swr: add noise_scale field to seperate it from the noise shaping scales
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 9 Jan 2013 23:25:09 +0000 (00:25 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 9 Jan 2013 23:25:09 +0000 (00:25 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libswresample/dither.c
libswresample/swresample_internal.h

index d7cb8a1..c3bb560 100644 (file)
@@ -24,7 +24,7 @@
 #include "noise_shaping_data.c"
 
 void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat noise_fmt) {
-    double scale = s->dither.ns_scale;
+    double scale = s->dither.noise_scale;
 #define TMP_EXTRA 2
     double *tmp = av_malloc((len + TMP_EXTRA) * sizeof(double));
     int i;
@@ -95,6 +95,7 @@ int swri_dither_init(SwrContext *s, enum AVSampleFormat out_fmt, enum AVSampleFo
     scale *= s->dither.scale;
 
     s->dither.ns_pos = 0;
+    s->dither.noise_scale=   scale;
     s->dither.ns_scale   =   scale;
     s->dither.ns_scale_1 = 1/scale;
     memset(s->dither.ns_errors, 0, sizeof(s->dither.ns_errors));
index 5236098..8423c3a 100644 (file)
@@ -54,6 +54,7 @@ struct DitherContext {
     enum SwrDitherType method;
     int dither_pos;
     float scale;
+    float noise_scale;                              ///< Noise scale
     int ns_taps;                                    ///< Noise shaping dither taps
     float ns_scale;                                 ///< Noise shaping dither scale
     float ns_scale_1;                               ///< Noise shaping dither scale^-1