<p>Jenkins2 <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/7816">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Richard Mudgett: Looks good to me, but someone else must approve
  Joshua Colp: Looks good to me, but someone else must approve
  Sean Bright: Looks good to me, approved
  Jenkins2: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">translate: Avoid absolute value on unsigned substraction.<br><br>ast_format_get_sample_rate(.) returns an unsigned type. The difference of a<br>substraction between two unsigned types does not get implicitly converted to a<br>signed type. Therefore, using abs(.) did not make sense.<br><br>ASTERISK-27549<br><br>Change-Id: Ib904d9ee0d46b6fdd1476fbc464fbbf813304017<br>---<br>M main/translate.c<br>1 file changed, 9 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/main/translate.c b/main/translate.c<br>index 0721f07..240e495 100644<br>--- a/main/translate.c<br>+++ b/main/translate.c<br>@@ -34,7 +34,6 @@<br> #include <sys/time.h><br> #include <sys/resource.h><br> #include <math.h><br>-#include <stdlib.h><br> <br> #include "asterisk/lock.h"<br> #include "asterisk/channel.h"<br>@@ -1322,6 +1321,13 @@<br>    AST_RWLIST_UNLOCK(&translators);<br> }<br> <br>+/*! Calculate the absolute difference between sample rate of two formats. */<br>+#define format_sample_rate_absdiff(fmt1, fmt2) ({ \<br>+     unsigned int rate1 = ast_format_get_sample_rate(fmt1); \<br>+     unsigned int rate2 = ast_format_get_sample_rate(fmt2); \<br>+     (rate1 > rate2 ? rate1 - rate2 : rate2 - rate1); \<br>+})<br>+<br> /*! \brief Calculate our best translator source format, given costs, and a desired destination */<br> int ast_translator_best_choice(struct ast_format_cap *dst_cap,<br>    struct ast_format_cap *src_cap,<br>@@ -1406,10 +1412,8 @@<br>                               beststeps = matrix_get(x, y)->multistep;<br>                   } else if (matrix_get(x, y)->table_cost == besttablecost<br>                                   && matrix_get(x, y)->multistep == beststeps) {<br>-                            int gap_selected = abs(ast_format_get_sample_rate(best)<br>-                                      - ast_format_get_sample_rate(bestdst));<br>-                              int gap_current = abs(ast_format_get_sample_rate(src)<br>-                                        - ast_format_get_sample_rate(dst));<br>+                          unsigned int gap_selected = format_sample_rate_absdiff(best, bestdst);<br>+                               unsigned int gap_current = format_sample_rate_absdiff(src, dst);<br> <br>                           if (gap_current < gap_selected) {<br>                                  /* better than what we have so far */<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/7816">change 7816</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/7816"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 13 </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ib904d9ee0d46b6fdd1476fbc464fbbf813304017 </div>
<div style="display:none"> Gerrit-Change-Number: 7816 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Alexander Traud <pabstraud@compuserve.com> </div>
<div style="display:none"> Gerrit-Reviewer: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Sean Bright <sean.bright@gmail.com> </div>