OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2011 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include <set> | 11 #include <set> |
12 #include <string> | 12 #include <string> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 #include "webrtc/api/jsepsessiondescription.h" | 15 #include "webrtc/api/jsepsessiondescription.h" |
16 #ifdef WEBRTC_ANDROID | 16 #ifdef WEBRTC_ANDROID |
17 #include "webrtc/api/test/androidtestinitializer.h" | 17 #include "webrtc/api/test/androidtestinitializer.h" |
18 #endif | 18 #endif |
19 #include "webrtc/api/webrtcsdp.h" | 19 #include "webrtc/api/webrtcsdp.h" |
20 #include "webrtc/base/gunit.h" | 20 #include "webrtc/base/gunit.h" |
21 #include "webrtc/base/logging.h" | 21 #include "webrtc/base/logging.h" |
22 #include "webrtc/base/messagedigest.h" | 22 #include "webrtc/base/messagedigest.h" |
23 #include "webrtc/base/scoped_ptr.h" | 23 #include "webrtc/base/scoped_ptr.h" |
24 #include "webrtc/base/sslfingerprint.h" | 24 #include "webrtc/base/sslfingerprint.h" |
25 #include "webrtc/base/stringencode.h" | 25 #include "webrtc/base/stringencode.h" |
26 #include "webrtc/base/stringutils.h" | 26 #include "webrtc/base/stringutils.h" |
27 #include "webrtc/media/base/mediaconstants.h" | 27 #include "webrtc/media/base/mediaconstants.h" |
28 #include "webrtc/media/engine/webrtcvideoengine2.h" | |
29 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h" | |
28 #include "webrtc/p2p/base/p2pconstants.h" | 30 #include "webrtc/p2p/base/p2pconstants.h" |
29 #include "webrtc/pc/mediasession.h" | 31 #include "webrtc/pc/mediasession.h" |
30 | 32 |
31 using cricket::AudioCodec; | 33 using cricket::AudioCodec; |
32 using cricket::AudioContentDescription; | 34 using cricket::AudioContentDescription; |
33 using cricket::Candidate; | 35 using cricket::Candidate; |
34 using cricket::ContentInfo; | 36 using cricket::ContentInfo; |
35 using cricket::CryptoParams; | 37 using cricket::CryptoParams; |
36 using cricket::ContentGroup; | 38 using cricket::ContentGroup; |
37 using cricket::DataCodec; | 39 using cricket::DataCodec; |
(...skipping 2043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2081 "", "", LOCAL_PORT_TYPE, kCandidateGeneration, | 2083 "", "", LOCAL_PORT_TYPE, kCandidateGeneration, |
2082 kCandidateFoundation1); | 2084 kCandidateFoundation1); |
2083 candidate.set_tcptype(cricket::TCPTYPE_ACTIVE_STR); | 2085 candidate.set_tcptype(cricket::TCPTYPE_ACTIVE_STR); |
2084 rtc::scoped_ptr<IceCandidateInterface> jcandidate( | 2086 rtc::scoped_ptr<IceCandidateInterface> jcandidate( |
2085 new JsepIceCandidate(std::string("audio_content_name"), 0, candidate)); | 2087 new JsepIceCandidate(std::string("audio_content_name"), 0, candidate)); |
2086 | 2088 |
2087 std::string message = webrtc::SdpSerializeCandidate(*jcandidate); | 2089 std::string message = webrtc::SdpSerializeCandidate(*jcandidate); |
2088 EXPECT_EQ(std::string(kSdpTcpActiveCandidate), message); | 2090 EXPECT_EQ(std::string(kSdpTcpActiveCandidate), message); |
2089 } | 2091 } |
2090 | 2092 |
2093 TEST_F(WebRtcSdpTest, SerializeSessionDescriptionWithH264) { | |
2094 if (webrtc::H264Encoder::IsSupported()) { | |
tommi
2016/04/12 10:10:26
nit: change to
if (!webrtc::H264Encoder::IsSuppor
| |
2095 for (const auto& codec : cricket::DefaultVideoCodecList()) { | |
2096 video_desc_->AddCodec(codec); | |
2097 } | |
2098 jdesc_.Initialize(desc_.Copy(), kSessionId, kSessionVersion); | |
2099 | |
2100 std::string message = webrtc::SdpSerialize(jdesc_, false); | |
2101 size_t after_pt = message.find(" H264/90000"); | |
hbos
2016/04/12 10:14:23
Can we also make sure that the m=video line contai
hta-webrtc
2016/04/12 11:21:37
Argh. Can do this, but now we're passing the level
hbos
2016/04/12 11:41:14
Acknowledged.
| |
2102 ASSERT_NE(after_pt, std::string::npos); | |
2103 size_t before_pt = message.rfind("a=rtpmap:", after_pt); | |
2104 ASSERT_NE(before_pt, std::string::npos); | |
2105 before_pt += strlen("a=rtpmap:"); | |
2106 std::string pt = message.substr(before_pt, after_pt - before_pt); | |
2107 std::string to_find = "a=fmtp:" + pt + " "; | |
2108 size_t fmtp_pos = message.find(to_find); | |
2109 ASSERT_NE(std::string::npos, fmtp_pos) << "Failed to find " << to_find; | |
2110 size_t fmtp_endpos = message.find("\n", fmtp_pos); | |
2111 ASSERT_NE(std::string::npos, fmtp_endpos); | |
2112 std::string fmtp_value = message.substr(fmtp_pos, fmtp_endpos); | |
2113 EXPECT_NE(std::string::npos, fmtp_value.find("level-asymmetry-allowed=1")); | |
2114 EXPECT_NE(std::string::npos, fmtp_value.find("packetization-mode=1")); | |
2115 EXPECT_NE(std::string::npos, fmtp_value.find("profile-level-id=42e01f")); | |
2116 // Provoke an error to verify that test is run. | |
tommi
2016/04/12 10:10:26
I'm not groking this comment... is it a todo?
hbos
2016/04/12 10:14:23
Old comment that should be removed?
hta-webrtc
2016/04/12 11:21:37
Yep. Done.
| |
2117 } | |
hbos
2016/04/12 10:14:23
Optional: How about logging if the test was skippe
hta-webrtc
2016/04/12 11:21:38
Will only have any effect if people actually look
| |
2118 } | |
2119 | |
2091 TEST_F(WebRtcSdpTest, DeserializeSessionDescription) { | 2120 TEST_F(WebRtcSdpTest, DeserializeSessionDescription) { |
2092 JsepSessionDescription jdesc(kDummyString); | 2121 JsepSessionDescription jdesc(kDummyString); |
2093 // Deserialize | 2122 // Deserialize |
2094 EXPECT_TRUE(SdpDeserialize(kSdpFullString, &jdesc)); | 2123 EXPECT_TRUE(SdpDeserialize(kSdpFullString, &jdesc)); |
2095 // Verify | 2124 // Verify |
2096 EXPECT_TRUE(CompareSessionDescription(jdesc_, jdesc)); | 2125 EXPECT_TRUE(CompareSessionDescription(jdesc_, jdesc)); |
2097 } | 2126 } |
2098 | 2127 |
2099 TEST_F(WebRtcSdpTest, DeserializeSessionDescriptionWithoutMline) { | 2128 TEST_F(WebRtcSdpTest, DeserializeSessionDescriptionWithoutMline) { |
2100 JsepSessionDescription jdesc(kDummyString); | 2129 JsepSessionDescription jdesc(kDummyString); |
(...skipping 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3112 EXPECT_TRUE( | 3141 EXPECT_TRUE( |
3113 SdpDeserialize(kUnifiedPlanSdpFullString, &deserialized_description)); | 3142 SdpDeserialize(kUnifiedPlanSdpFullString, &deserialized_description)); |
3114 | 3143 |
3115 EXPECT_TRUE(CompareSessionDescription(jdesc_, deserialized_description)); | 3144 EXPECT_TRUE(CompareSessionDescription(jdesc_, deserialized_description)); |
3116 } | 3145 } |
3117 | 3146 |
3118 TEST_F(WebRtcSdpTest, SerializeUnifiedPlanSessionDescription) { | 3147 TEST_F(WebRtcSdpTest, SerializeUnifiedPlanSessionDescription) { |
3119 MakeUnifiedPlanDescription(); | 3148 MakeUnifiedPlanDescription(); |
3120 TestSerialize(jdesc_, true); | 3149 TestSerialize(jdesc_, true); |
3121 } | 3150 } |
OLD | NEW |