Fix a bug in the SDP parser in AppRTCMobile.

It would leave a trailing carriage return character in the payload
list, causing the preferred codec to appear twice if it was at the
back of the list originally. This causes problems down the line and
results in that codec not being negotiated successfully.

BUG=webrtc:8129

Review-Url: https://codereview.webrtc.org/3001363002
Cr-Commit-Position: refs/heads/master@{#19552}
This commit is contained in:
kthelgason 2017-08-28 00:48:18 -07:00 committed by Commit Bot
parent 95c8f65382
commit 6644c8b733
2 changed files with 14 additions and 14 deletions

View File

@ -19,7 +19,7 @@
descriptionForDescription:(RTCSessionDescription *)description
preferredVideoCodec:(NSString *)codec {
NSString *sdpString = description.sdp;
NSString *lineSeparator = @"\n";
NSString *lineSeparator = @"\r\n";
NSString *mLineSeparator = @" ";
// Copied from PeerConnectionClient.java.
// TODO(tkchin): Move this to a shared C++ file.

View File

@ -21,31 +21,31 @@
@implementation ARDSDPUtilsTest
- (void)testPreferVideoCodecH264 {
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n"
"a=rtpmap:120 H264/90000\n"
"a=rtpmap:97 H264/90000\n");
NSString *expectedSdp = @("m=video 9 RTP/SAVPF 120 97 100 116 117 96\n"
"a=rtpmap:120 H264/90000\n"
"a=rtpmap:97 H264/90000\n");
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\r\n"
"a=rtpmap:120 H264/90000\r\n"
"a=rtpmap:97 H264/90000\r\n");
NSString *expectedSdp = @("m=video 9 RTP/SAVPF 120 97 100 116 117 96\r\n"
"a=rtpmap:120 H264/90000\r\n"
"a=rtpmap:97 H264/90000\r\n");
[self preferVideoCodec:@"H264" sdp:sdp expected:expectedSdp];
}
- (void)testPreferVideoCodecVP8 {
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n"
"a=rtpmap:116 VP8/90000\n");
NSString *expectedSdp = @("m=video 9 RTP/SAVPF 116 100 117 96 120 97\n"
"a=rtpmap:116 VP8/90000\n");
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\r\n"
"a=rtpmap:116 VP8/90000\r\n");
NSString *expectedSdp = @("m=video 9 RTP/SAVPF 116 100 117 96 120 97\r\n"
"a=rtpmap:116 VP8/90000\r\n");
[self preferVideoCodec:@"VP8" sdp:sdp expected:expectedSdp];
}
- (void)testNoMLine {
NSString *sdp = @("a=rtpmap:116 VP8/90000\n");
NSString *sdp = @("a=rtpmap:116 VP8/90000\r\n");
[self preferVideoCodec:@"VP8" sdp:sdp expected:sdp];
}
- (void)testMissingCodec {
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n"
"a=rtpmap:116 VP8/90000\n");
NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\r\n"
"a=rtpmap:116 VP8/90000\r\n");
[self preferVideoCodec:@"foo" sdp:sdp expected:sdp];
}