swr: add a dither_scale parameter to tune the amplitude of the dither.
[ffmpeg.git] / libswresample / dither.c
index 8d5d0bc..a340733 100644 (file)
@@ -36,6 +36,8 @@ void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSa
     if(in_fmt == AV_SAMPLE_FMT_S32 && out_fmt == AV_SAMPLE_FMT_U8 ) scale = 1L<<24;
     if(in_fmt == AV_SAMPLE_FMT_S16 && out_fmt == AV_SAMPLE_FMT_U8 ) scale = 1L<<8;
 
+    scale *= s->dither_scale;
+
     for(i=0; i<len + TMP_EXTRA; i++){
         double v;
         seed = seed* 1664525 + 1013904223;