[asterisk-commits] kpfleming: branch 1.2 r38347 - /branches/1.2/channel.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu Jul 27 08:40:04 MST 2006


Author: kpfleming
Date: Thu Jul 27 10:40:03 2006
New Revision: 38347

URL: http://svn.digium.com/view/asterisk?rev=38347&view=rev
Log:
do a better job avoiding translation path teardown/setup when not needed

Modified:
    branches/1.2/channel.c

Modified: branches/1.2/channel.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channel.c?rev=38347&r1=38346&r2=38347&view=diff
==============================================================================
--- branches/1.2/channel.c (original)
+++ branches/1.2/channel.c Thu Jul 27 10:40:03 2006
@@ -2328,10 +2328,6 @@
 	int native;
 	int res;
 	
-	/* if already in the desired format nothing to do here */
-	if (*format == fmt)
-		return 0;
-
 	native = chan->nativeformats;
 	/* Find a translation path from the native format to one of the desired formats */
 	if (!direction)
@@ -2349,6 +2345,13 @@
 	
 	/* Now we have a good choice for both. */
 	ast_mutex_lock(&chan->lock);
+
+	if ((*rawformat == native) && (*format == fmt)) {
+		/* the channel is already in these formats, so nothing to do */
+		ast_mutex_unlock(&chan->lock);
+		return 0;
+	}
+
 	*rawformat = native;
 	/* User perspective is fmt */
 	*format = fmt;



More information about the asterisk-commits mailing list