diff src/libSAD/dither.c @ 4237:8f6956130372

initial Replay Gain support
author Eugene Zagidullin <e.asphyx@gmail.com>
date Sat, 02 Feb 2008 01:53:15 +0300
parents 2d4b4f13d10d
children 75ea2083e744
line wrap: on
line diff
--- a/src/libSAD/dither.c	Thu Jan 31 21:43:51 2008 +0300
+++ b/src/libSAD/dither.c	Sat Feb 02 01:53:15 2008 +0300
@@ -457,6 +457,11 @@
     case SAD_RG_TRACK:
       scale = db2scale(rg_info->track_gain);
       peak = rg_info->track_peak;
+      if (peak == 0.0) {
+        scale = db2scale(rg_info->album_gain); // fallback to per-album mode
+	peak = rg_info->album_peak;
+	DEBUG_MSG("f: SAD_dither_apply_replaygain: fallback to album mode\n",0);
+      }
       break;
     case SAD_RG_NONE:
       scale = -1.0;
@@ -464,7 +469,7 @@
   
   if (scale != -1.0 && peak != 0.0) {
     DEBUG_MSG("f: SAD_dither_apply_replaygain: applying\n",0);
-    scale *= mode->preamp;
+    scale *= db2scale(mode->preamp);
     // Clipping prevention
     if(mode->clipping_prevention) {
 #ifdef DEBUG