[asterisk-bugs] [JIRA] (ASTERISK-26611) res_rtp_asterisk: Fix byte order on non-8kHz signed linear
Rusty Newton (JIRA)
noreply at issues.asterisk.org
Tue Nov 29 09:24:10 CST 2016
[ https://issues.asterisk.org/jira/browse/ASTERISK-26611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=233947#comment-233947 ]
Rusty Newton commented on ASTERISK-26611:
-----------------------------------------
[~bg1] , to be clear - your patch will not show up on the issue until the license is accepted. As we cannot accept a patch submitted without an associated license submission.
> res_rtp_asterisk: Fix byte order on non-8kHz signed linear
> ----------------------------------------------------------
>
> Key: ASTERISK-26611
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-26611
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Core/RTP
> Affects Versions: 13.7.0
> Environment: Ubuntu 14.04.5 on i686
> Reporter: Vitaly K
> Assignee: Vitaly K
> Severity: Minor
> Attachments: L16_sending_little_endian_bugfix.patch
>
>
> I try use L16/16000 codec enabled by allow=slin16 in sip.conf of asterisk-13.7.0 on x86 arch with communication with softphone on top of pj-project.
> When play test wav file peer side heard noise instead of music.
> With other codec selected - music heard as expected.
> I run tests with MixMonitor on asterisk - record is music not noise.
> I convert wav file to raw sln16 and convert it to big-endian (because asterisk can't read big-endian wav files aka RIFX)
> In this case peer heard music not noise!
> I run tcpdump for catch rtp stream and manually examine raw rtp data and raw sln16 (but big-endian) file.
> Byte order in this sources is same!
> I make some review for asterisk source code and found:
> a) asterisk allow to read only little-endian wav files aka RIFF
> b) when this type of file readed always convert to native machine byte order and define this format as slin16
> c) when select codec is L16 same format used and no convertion of byte order before send rtp
> d) on little-endian machines this cause outgoing stream placed in little-endian byte order
> It breaks of RFC what define L16 have big-endian byte order.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list