[asterisk-commits] wdoekes: trunk r405766 - in /trunk: CHANGES res/res_musiconhold.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jan 17 08:17:09 CST 2014


Author: wdoekes
Date: Fri Jan 17 08:17:04 2014
New Revision: 405766

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=405766
Log:
Enable wide band audio in musiconhold streams.

Review: https://reviewboard.asterisk.org/r/3112/

Modified:
    trunk/CHANGES
    trunk/res/res_musiconhold.c

Modified: trunk/CHANGES
URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=405766&r1=405765&r2=405766
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Fri Jan 17 08:17:04 2014
@@ -44,6 +44,11 @@
      SELECTED    user selected a user from the directory and is routed
      USEREXIT    user pressed '#' from the selection prompt to exit
      FAILED      directory failed in a way that wasn't accounted for. Dang.
+
+MusicOnHold
+--------------------------
+ * MusicOnHold streams (all modes other than "files") now support wide band
+   audio too.
 
 Page
 --------------------------

Modified: trunk/res/res_musiconhold.c
URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_musiconhold.c?view=diff&rev=405766&r1=405765&r2=405766
==============================================================================
--- trunk/res/res_musiconhold.c (original)
+++ trunk/res/res_musiconhold.c Fri Jan 17 08:17:04 2014
@@ -704,7 +704,8 @@
 					ast_log(LOG_ERROR, "Failed to acknowledge timer for mp3player\n");
 					return NULL;
 				}
-				res = 320;
+				/* 25 samples per second => 40ms framerate => 320 samples */
+				res = 320; /* 320/40 = 8 samples/ms */
 			} else {
 				ast_log(LOG_WARNING, "poll() failed: %s\n", strerror(errno));
 				res = 0;
@@ -725,8 +726,12 @@
 				ast_log(LOG_NOTICE, "Request to schedule in the past?!?!\n");
 				deadline = tv_tmp;
 			}
-			res = 8 * MOH_MS_INTERVAL;	/* 8 samples per millisecond */
-		}
+			/* 10 samples per second (MOH_MS_INTERVAL) => 100ms framerate => 800 samples */
+			res = 8 * MOH_MS_INTERVAL; /* 800/100 = 8 samples/ms */
+		}
+		/* For non-8000Hz formats, we need to alter the resolution */
+		res = res * ast_format_rate(&class->format) / 8000;
+
 		if ((strncasecmp(class->dir, "http://", 7) && strcasecmp(class->dir, "nodir")) && AST_LIST_EMPTY(&class->members))
 			continue;
 		/* Read mp3 audio */




More information about the asterisk-commits mailing list