[svn-commits] mmichelson: branch 1.6.2 r278621 - in /branches/1.6.2: ./ main/channel.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Jul 22 10:00:15 CDT 2010


Author: mmichelson
Date: Thu Jul 22 10:00:11 2010
New Revision: 278621

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=278621
Log:
Merged revisions 278620 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r278620 | mmichelson | 2010-07-22 09:58:01 -0500 (Thu, 22 Jul 2010) | 19 lines
  
  Merged revisions 278618 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r278618 | mmichelson | 2010-07-22 09:55:04 -0500 (Thu, 22 Jul 2010) | 13 lines
    
    Allow PLC to function properly when channels use SLIN for audio.
    
    If a channel involved in a bridge was using SLIN audio, then translation
    paths were not guaranteed to be set up properly since in all likelihood
    the number of translation steps was only 1.
    
    This patch enforces the transcode_via_slin behavior if transcode_via_slin
    or generic_plc is enabled and one of the formats to make compatible is
    SLIN.
    
    AST-352
  ........
................

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/main/channel.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.2/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/main/channel.c?view=diff&rev=278621&r1=278620&r2=278621
==============================================================================
--- branches/1.6.2/main/channel.c (original)
+++ branches/1.6.2/main/channel.c Thu Jul 22 10:00:11 2010
@@ -4356,6 +4356,7 @@
 {
 	int src;
 	int dst;
+	int use_slin;
 
 	if (from->readformat == to->writeformat && from->writeformat == to->readformat) {
 		/* Already compatible!  Moving on ... */
@@ -4381,8 +4382,9 @@
 	 * no direct conversion available. If generic PLC is
 	 * desired, then transcoding via SLINEAR is a requirement
 	 */
+	use_slin = (src == AST_FORMAT_SLINEAR || dst == AST_FORMAT_SLINEAR);
 	if ((src != dst) && (ast_opt_generic_plc || ast_opt_transcode_via_slin) &&
-	    (ast_translate_path_steps(dst, src) != 1))
+	    (ast_translate_path_steps(dst, src) != 1 || use_slin))
 		dst = AST_FORMAT_SLINEAR;
 	if (ast_set_read_format(from, dst) < 0) {
 		ast_log(LOG_WARNING, "Unable to set read format on channel %s to %d\n", from->name, dst);




More information about the svn-commits mailing list