> On March 17, 2015, 4:57 p.m., Matt Jordan wrote: > > /tags/13.2.0/res/res_rtp_asterisk.c, lines 3394-3406 > > <https://reviewboard.asterisk.org/r/4505/diff/1/?file=72594#file72594line3394> > > > > I think your issue should be solved here. > > > > When you care a new smoother, you can specify whether or not it is BE > > or LE via the ast_smoother_set_flags call. The real issue is determining > > whether or not your machine is BE or LE. > > > > What distro/environment did you produce this issue on?
This issue was produced using Ubuntu 14.04.1 on Intel x86 platform. In Asterisk 12.8.1 I notice that when a smoother is created, the ast_smoother_set_flags() method is used to set the format flags into the smoother. Hence it is not deciding on BE/LE based on the machine platform. > On March 17, 2015, 4:57 p.m., Matt Jordan wrote: > > /tags/13.2.0/include/asterisk/codec.h, lines 77-80 > > <https://reviewboard.asterisk.org/r/4505/diff/1/?file=72588#file72588line77> > > > > I don't think you can trust that the codec will know its endianness. > > Looking at the resample code, I don't _think_ it actually determines the > > endianness of its encoding/decoding, and instead relies on the underlying > > machine to make that determination. As such, I don't think this should be a > > property on the codec structure. Matt, I actually followed the implementation in Asterisk 12.8.1 where the AST_SMOOTHER_FLAG_BE was defined for all the SLIN codecs in main/format.c under the format_list_init() method. Do you mean this implementation back in 12.8.1 was inappropriate? FYI, slin codec used to work fine in Asterisk 12.8.1 for our application. - Frankie ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviewboard.asterisk.org/r/4505/#review14719 ----------------------------------------------------------- On March 17, 2015, 3:36 a.m., Frankie Chin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviewboard.asterisk.org/r/4505/ > ----------------------------------------------------------- > > (Updated March 17, 2015, 3:36 a.m.) > > > Review request for Asterisk Developers. > > > Bugs: ASTERISK-24858 > https://issues.asterisk.org/jira/browse/ASTERISK-24858 > > > Repository: Asterisk > > > Description > ------- > > In Asterisk 13.2.0 when SLIN codec is used in two Asterisk servers registered > to one another via PJSIP, the RTP payload is sent in the wrong byte order. > The patch addresses the following based on the correct behavior in Asterisk > 12.8.1: > 1) Save ptime = 20 as the framing in the ast_rtp_codecs structure when > creating outgoing SDP packet (res_pjsip_sdp_rtp.c) > 2) Do not copy the framing when copying the payload (rtp_engine.c) > 3) Introduce the new "smoother_be" flagin the ast_codec structure. Set this > flag = 1 for all the SLIN codecs (codec_builtin.c). > 4) Check for this "smoother_be" flag before using the smoother on the data > (res_rtp_asterisk.c) > > > Diffs > ----- > > /tags/13.2.0/res/res_rtp_asterisk.c 433002 > /tags/13.2.0/res/res_pjsip_sdp_rtp.c 433002 > /tags/13.2.0/main/rtp_engine.c 433002 > /tags/13.2.0/main/format.c 433002 > /tags/13.2.0/main/codec_builtin.c 433002 > /tags/13.2.0/include/asterisk/format.h 433002 > /tags/13.2.0/include/asterisk/codec.h 433002 > > Diff: https://reviewboard.asterisk.org/r/4505/diff/ > > > Testing > ------- > > The patch was tested using the scenario described in ASTERISK-24858 > > > Thanks, > > Frankie Chin > >
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev
