| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 using webrtc::IceCandidateCollection; | 68 using webrtc::IceCandidateCollection; |
| 69 using webrtc::IceCandidateInterface; | 69 using webrtc::IceCandidateInterface; |
| 70 using webrtc::JsepIceCandidate; | 70 using webrtc::JsepIceCandidate; |
| 71 using webrtc::JsepSessionDescription; | 71 using webrtc::JsepSessionDescription; |
| 72 using webrtc::SdpParseError; | 72 using webrtc::SdpParseError; |
| 73 using webrtc::SessionDescriptionInterface; | 73 using webrtc::SessionDescriptionInterface; |
| 74 | 74 |
| 75 typedef std::vector<AudioCodec> AudioCodecs; | 75 typedef std::vector<AudioCodec> AudioCodecs; |
| 76 typedef std::vector<Candidate> Candidates; | 76 typedef std::vector<Candidate> Candidates; |
| 77 | 77 |
| 78 static const uint32 kDefaultSctpPort = 5000; | 78 static const uint32_t kDefaultSctpPort = 5000; |
| 79 static const char kSessionTime[] = "t=0 0\r\n"; | 79 static const char kSessionTime[] = "t=0 0\r\n"; |
| 80 static const uint32 kCandidatePriority = 2130706432U; // pref = 1.0 | 80 static const uint32_t kCandidatePriority = 2130706432U; // pref = 1.0 |
| 81 static const char kCandidateUfragVoice[] = "ufrag_voice"; | 81 static const char kCandidateUfragVoice[] = "ufrag_voice"; |
| 82 static const char kCandidatePwdVoice[] = "pwd_voice"; | 82 static const char kCandidatePwdVoice[] = "pwd_voice"; |
| 83 static const char kAttributeIcePwdVoice[] = "a=ice-pwd:pwd_voice\r\n"; | 83 static const char kAttributeIcePwdVoice[] = "a=ice-pwd:pwd_voice\r\n"; |
| 84 static const char kCandidateUfragVideo[] = "ufrag_video"; | 84 static const char kCandidateUfragVideo[] = "ufrag_video"; |
| 85 static const char kCandidatePwdVideo[] = "pwd_video"; | 85 static const char kCandidatePwdVideo[] = "pwd_video"; |
| 86 static const char kCandidateUfragData[] = "ufrag_data"; | 86 static const char kCandidateUfragData[] = "ufrag_data"; |
| 87 static const char kCandidatePwdData[] = "pwd_data"; | 87 static const char kCandidatePwdData[] = "pwd_data"; |
| 88 static const char kAttributeIcePwdVideo[] = "a=ice-pwd:pwd_video\r\n"; | 88 static const char kAttributeIcePwdVideo[] = "a=ice-pwd:pwd_video\r\n"; |
| 89 static const uint32 kCandidateGeneration = 2; | 89 static const uint32_t kCandidateGeneration = 2; |
| 90 static const char kCandidateFoundation1[] = "a0+B/1"; | 90 static const char kCandidateFoundation1[] = "a0+B/1"; |
| 91 static const char kCandidateFoundation2[] = "a0+B/2"; | 91 static const char kCandidateFoundation2[] = "a0+B/2"; |
| 92 static const char kCandidateFoundation3[] = "a0+B/3"; | 92 static const char kCandidateFoundation3[] = "a0+B/3"; |
| 93 static const char kCandidateFoundation4[] = "a0+B/4"; | 93 static const char kCandidateFoundation4[] = "a0+B/4"; |
| 94 static const char kAttributeCryptoVoice[] = | 94 static const char kAttributeCryptoVoice[] = |
| 95 "a=crypto:1 AES_CM_128_HMAC_SHA1_32 " | 95 "a=crypto:1 AES_CM_128_HMAC_SHA1_32 " |
| 96 "inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32 " | 96 "inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32 " |
| 97 "dummy_session_params\r\n"; | 97 "dummy_session_params\r\n"; |
| 98 static const char kAttributeCryptoVideo[] = | 98 static const char kAttributeCryptoVideo[] = |
| 99 "a=crypto:1 AES_CM_128_HMAC_SHA1_80 " | 99 "a=crypto:1 AES_CM_128_HMAC_SHA1_80 " |
| 100 "inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32\r\n"; | 100 "inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32\r\n"; |
| 101 static const char kFingerprint[] = "a=fingerprint:sha-1 " | 101 static const char kFingerprint[] = "a=fingerprint:sha-1 " |
| 102 "4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB\r\n"; | 102 "4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB\r\n"; |
| 103 static const int kExtmapId = 1; | 103 static const int kExtmapId = 1; |
| 104 static const char kExtmapUri[] = "http://example.com/082005/ext.htm#ttime"; | 104 static const char kExtmapUri[] = "http://example.com/082005/ext.htm#ttime"; |
| 105 static const char kExtmap[] = | 105 static const char kExtmap[] = |
| 106 "a=extmap:1 http://example.com/082005/ext.htm#ttime\r\n"; | 106 "a=extmap:1 http://example.com/082005/ext.htm#ttime\r\n"; |
| 107 static const char kExtmapWithDirectionAndAttribute[] = | 107 static const char kExtmapWithDirectionAndAttribute[] = |
| 108 "a=extmap:1/sendrecv http://example.com/082005/ext.htm#ttime a1 a2\r\n"; | 108 "a=extmap:1/sendrecv http://example.com/082005/ext.htm#ttime a1 a2\r\n"; |
| 109 | 109 |
| 110 static const uint8 kIdentityDigest[] = {0x4A, 0xAD, 0xB9, 0xB1, | 110 static const uint8_t kIdentityDigest[] = { |
| 111 0x3F, 0x82, 0x18, 0x3B, | 111 0x4A, 0xAD, 0xB9, 0xB1, 0x3F, 0x82, 0x18, 0x3B, 0x54, 0x02, |
| 112 0x54, 0x02, 0x12, 0xDF, | 112 0x12, 0xDF, 0x3E, 0x5D, 0x49, 0x6B, 0x19, 0xE5, 0x7C, 0xAB}; |
| 113 0x3E, 0x5D, 0x49, 0x6B, | |
| 114 0x19, 0xE5, 0x7C, 0xAB}; | |
| 115 | 113 |
| 116 static const char kDtlsSctp[] = "DTLS/SCTP"; | 114 static const char kDtlsSctp[] = "DTLS/SCTP"; |
| 117 static const char kUdpDtlsSctp[] = "UDP/DTLS/SCTP"; | 115 static const char kUdpDtlsSctp[] = "UDP/DTLS/SCTP"; |
| 118 static const char kTcpDtlsSctp[] = "TCP/DTLS/SCTP"; | 116 static const char kTcpDtlsSctp[] = "TCP/DTLS/SCTP"; |
| 119 | 117 |
| 120 struct CodecParams { | 118 struct CodecParams { |
| 121 int max_ptime; | 119 int max_ptime; |
| 122 int ptime; | 120 int ptime; |
| 123 int min_ptime; | 121 int min_ptime; |
| 124 int sprop_stereo; | 122 int sprop_stereo; |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 | 400 |
| 403 // Content name | 401 // Content name |
| 404 static const char kAudioContentName[] = "audio_content_name"; | 402 static const char kAudioContentName[] = "audio_content_name"; |
| 405 static const char kVideoContentName[] = "video_content_name"; | 403 static const char kVideoContentName[] = "video_content_name"; |
| 406 static const char kDataContentName[] = "data_content_name"; | 404 static const char kDataContentName[] = "data_content_name"; |
| 407 | 405 |
| 408 // MediaStream 1 | 406 // MediaStream 1 |
| 409 static const char kStreamLabel1[] = "local_stream_1"; | 407 static const char kStreamLabel1[] = "local_stream_1"; |
| 410 static const char kStream1Cname[] = "stream_1_cname"; | 408 static const char kStream1Cname[] = "stream_1_cname"; |
| 411 static const char kAudioTrackId1[] = "audio_track_id_1"; | 409 static const char kAudioTrackId1[] = "audio_track_id_1"; |
| 412 static const uint32 kAudioTrack1Ssrc = 1; | 410 static const uint32_t kAudioTrack1Ssrc = 1; |
| 413 static const char kVideoTrackId1[] = "video_track_id_1"; | 411 static const char kVideoTrackId1[] = "video_track_id_1"; |
| 414 static const uint32 kVideoTrack1Ssrc = 2; | 412 static const uint32_t kVideoTrack1Ssrc = 2; |
| 415 static const char kVideoTrackId2[] = "video_track_id_2"; | 413 static const char kVideoTrackId2[] = "video_track_id_2"; |
| 416 static const uint32 kVideoTrack2Ssrc = 3; | 414 static const uint32_t kVideoTrack2Ssrc = 3; |
| 417 | 415 |
| 418 // MediaStream 2 | 416 // MediaStream 2 |
| 419 static const char kStreamLabel2[] = "local_stream_2"; | 417 static const char kStreamLabel2[] = "local_stream_2"; |
| 420 static const char kStream2Cname[] = "stream_2_cname"; | 418 static const char kStream2Cname[] = "stream_2_cname"; |
| 421 static const char kAudioTrackId2[] = "audio_track_id_2"; | 419 static const char kAudioTrackId2[] = "audio_track_id_2"; |
| 422 static const uint32 kAudioTrack2Ssrc = 4; | 420 static const uint32_t kAudioTrack2Ssrc = 4; |
| 423 static const char kVideoTrackId3[] = "video_track_id_3"; | 421 static const char kVideoTrackId3[] = "video_track_id_3"; |
| 424 static const uint32 kVideoTrack3Ssrc = 5; | 422 static const uint32_t kVideoTrack3Ssrc = 5; |
| 425 static const uint32 kVideoTrack4Ssrc = 6; | 423 static const uint32_t kVideoTrack4Ssrc = 6; |
| 426 | 424 |
| 427 // DataChannel | 425 // DataChannel |
| 428 static const char kDataChannelLabel[] = "data_channel"; | 426 static const char kDataChannelLabel[] = "data_channel"; |
| 429 static const char kDataChannelMsid[] = "data_channeld0"; | 427 static const char kDataChannelMsid[] = "data_channeld0"; |
| 430 static const char kDataChannelCname[] = "data_channel_cname"; | 428 static const char kDataChannelCname[] = "data_channel_cname"; |
| 431 static const uint32 kDataChannelSsrc = 10; | 429 static const uint32_t kDataChannelSsrc = 10; |
| 432 | 430 |
| 433 // Candidate | 431 // Candidate |
| 434 static const char kDummyMid[] = "dummy_mid"; | 432 static const char kDummyMid[] = "dummy_mid"; |
| 435 static const int kDummyIndex = 123; | 433 static const int kDummyIndex = 123; |
| 436 | 434 |
| 437 // Misc | 435 // Misc |
| 438 static const char kDummyString[] = "dummy"; | 436 static const char kDummyString[] = "dummy"; |
| 439 | 437 |
| 440 // Helper functions | 438 // Helper functions |
| 441 | 439 |
| (...skipping 1708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2150 // Remove the "\n" at the end. | 2148 // Remove the "\n" at the end. |
| 2151 sdp_with_data = sdp_with_data.substr(0, sdp_with_data.size() - 1); | 2149 sdp_with_data = sdp_with_data.substr(0, sdp_with_data.size() - 1); |
| 2152 JsepSessionDescription jdesc_output(kDummyString); | 2150 JsepSessionDescription jdesc_output(kDummyString); |
| 2153 | 2151 |
| 2154 EXPECT_FALSE(SdpDeserialize(sdp_with_data, &jdesc_output)); | 2152 EXPECT_FALSE(SdpDeserialize(sdp_with_data, &jdesc_output)); |
| 2155 // No crash is a pass. | 2153 // No crash is a pass. |
| 2156 } | 2154 } |
| 2157 | 2155 |
| 2158 TEST_F(WebRtcSdpTest, DeserializeSdpWithSctpDataChannelAndNewPort) { | 2156 TEST_F(WebRtcSdpTest, DeserializeSdpWithSctpDataChannelAndNewPort) { |
| 2159 AddSctpDataChannel(); | 2157 AddSctpDataChannel(); |
| 2160 const uint16 kUnusualSctpPort = 9556; | 2158 const uint16_t kUnusualSctpPort = 9556; |
| 2161 char default_portstr[16]; | 2159 char default_portstr[16]; |
| 2162 char unusual_portstr[16]; | 2160 char unusual_portstr[16]; |
| 2163 rtc::sprintfn(default_portstr, sizeof(default_portstr), "%d", | 2161 rtc::sprintfn(default_portstr, sizeof(default_portstr), "%d", |
| 2164 kDefaultSctpPort); | 2162 kDefaultSctpPort); |
| 2165 rtc::sprintfn(unusual_portstr, sizeof(unusual_portstr), "%d", | 2163 rtc::sprintfn(unusual_portstr, sizeof(unusual_portstr), "%d", |
| 2166 kUnusualSctpPort); | 2164 kUnusualSctpPort); |
| 2167 | 2165 |
| 2168 // First setup the expected JsepSessionDescription. | 2166 // First setup the expected JsepSessionDescription. |
| 2169 JsepSessionDescription jdesc(kDummyString); | 2167 JsepSessionDescription jdesc(kDummyString); |
| 2170 // take our pre-built session description and change the SCTP port. | 2168 // take our pre-built session description and change the SCTP port. |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2664 const cricket::MediaContentDescription* mdesc = | 2662 const cricket::MediaContentDescription* mdesc = |
| 2665 static_cast<const cricket::MediaContentDescription*>( | 2663 static_cast<const cricket::MediaContentDescription*>( |
| 2666 desc->contents()[i].description); | 2664 desc->contents()[i].description); |
| 2667 EXPECT_EQ(media_types[media_content_in_sdp[i]], mdesc->type()); | 2665 EXPECT_EQ(media_types[media_content_in_sdp[i]], mdesc->type()); |
| 2668 } | 2666 } |
| 2669 | 2667 |
| 2670 std::string serialized_sdp = webrtc::SdpSerialize(jdesc); | 2668 std::string serialized_sdp = webrtc::SdpSerialize(jdesc); |
| 2671 EXPECT_EQ(sdp_string, serialized_sdp); | 2669 EXPECT_EQ(sdp_string, serialized_sdp); |
| 2672 } | 2670 } |
| 2673 } | 2671 } |
| OLD | NEW |