[Asterisk-code-review] res rtp asterisk: Swap byte-order when sending signed linear (asterisk[master])

Joshua Colp asteriskteam at digium.com
Wed Feb 1 15:36:23 CST 2017


Joshua Colp has submitted this change and it was merged. ( https://gerrit.asterisk.org/4854 )

Change subject: res_rtp_asterisk:  Swap byte-order when sending signed linear
......................................................................


res_rtp_asterisk:  Swap byte-order when sending signed linear

Before Asterisk 13, signed linear was converted into network byte order by a
smoother before being sent over the network. We restore this behavior by
forcing the creation of a smoother when slinear is in use and setting the
appropriate flags so that the byte order conversion is always done.

ASTERISK-24858 #close
Reported-by: Frankie Chin

Change-Id: I868449617d1a7819578f218c8c6b2111ad84f5a9
---
M res/res_rtp_asterisk.c
1 file changed, 8 insertions(+), 0 deletions(-)

Approvals:
  George Joseph: Looks good to me, approved
  Joshua Colp: Looks good to me, but someone else must approve; Verified



diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index c4608db..3d12400 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -3630,6 +3630,11 @@
 	/* If no smoother is present see if we have to set one up */
 	if (!rtp->smoother && ast_format_can_be_smoothed(format)) {
 		unsigned int framing_ms = ast_rtp_codecs_get_framing(ast_rtp_instance_get_codecs(instance));
+		int is_slinear = ast_format_cache_is_slinear(format);
+
+		if (!framing_ms && is_slinear) {
+			framing_ms = ast_format_get_default_ms(format);
+		}
 
 		if (framing_ms) {
 			rtp->smoother = ast_smoother_new((framing_ms * ast_format_get_minimum_bytes(format)) / ast_format_get_minimum_ms(format));
@@ -3638,6 +3643,9 @@
 					ast_format_get_name(format), framing_ms, ast_format_get_minimum_bytes(format));
 				return -1;
 			}
+			if (is_slinear) {
+				ast_smoother_set_flags(rtp->smoother, AST_SMOOTHER_FLAG_BE);
+			}
 		}
 	}
 

-- 
To view, visit https://gerrit.asterisk.org/4854
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I868449617d1a7819578f218c8c6b2111ad84f5a9
Gerrit-PatchSet: 4
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: Sean Bright <sean.bright at gmail.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>



More information about the asterisk-code-review mailing list