| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2009 Google Inc. | 3 * Copyright 2009 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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 using cricket::StreamParams; | 60 using cricket::StreamParams; |
| 61 using cricket::TransportChannel; | 61 using cricket::TransportChannel; |
| 62 using rtc::WindowId; | 62 using rtc::WindowId; |
| 63 | 63 |
| 64 static const cricket::AudioCodec kPcmuCodec(0, "PCMU", 64000, 8000, 1, 0); | 64 static const cricket::AudioCodec kPcmuCodec(0, "PCMU", 64000, 8000, 1, 0); |
| 65 static const cricket::AudioCodec kPcmaCodec(8, "PCMA", 64000, 8000, 1, 0); | 65 static const cricket::AudioCodec kPcmaCodec(8, "PCMA", 64000, 8000, 1, 0); |
| 66 static const cricket::AudioCodec kIsacCodec(103, "ISAC", 40000, 16000, 1, 0); | 66 static const cricket::AudioCodec kIsacCodec(103, "ISAC", 40000, 16000, 1, 0); |
| 67 static const cricket::VideoCodec kH264Codec(97, "H264", 640, 400, 30, 0); | 67 static const cricket::VideoCodec kH264Codec(97, "H264", 640, 400, 30, 0); |
| 68 static const cricket::VideoCodec kH264SvcCodec(99, "H264-SVC", 320, 200, 15, 0); | 68 static const cricket::VideoCodec kH264SvcCodec(99, "H264-SVC", 320, 200, 15, 0); |
| 69 static const cricket::DataCodec kGoogleDataCodec(101, "google-data", 0); | 69 static const cricket::DataCodec kGoogleDataCodec(101, "google-data", 0); |
| 70 static const uint32 kSsrc1 = 0x1111; | 70 static const uint32_t kSsrc1 = 0x1111; |
| 71 static const uint32 kSsrc2 = 0x2222; | 71 static const uint32_t kSsrc2 = 0x2222; |
| 72 static const uint32 kSsrc3 = 0x3333; | 72 static const uint32_t kSsrc3 = 0x3333; |
| 73 static const int kAudioPts[] = {0, 8}; | 73 static const int kAudioPts[] = {0, 8}; |
| 74 static const int kVideoPts[] = {97, 99}; | 74 static const int kVideoPts[] = {97, 99}; |
| 75 | 75 |
| 76 template <class ChannelT, | 76 template <class ChannelT, |
| 77 class MediaChannelT, | 77 class MediaChannelT, |
| 78 class ContentT, | 78 class ContentT, |
| 79 class CodecT, | 79 class CodecT, |
| 80 class MediaInfoT, | 80 class MediaInfoT, |
| 81 class OptionsT> | 81 class OptionsT> |
| 82 class Traits { | 82 class Traits { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 } | 120 } |
| 121 | 121 |
| 122 // Base class for Voice/VideoChannel tests | 122 // Base class for Voice/VideoChannel tests |
| 123 template<class T> | 123 template<class T> |
| 124 class ChannelTest : public testing::Test, public sigslot::has_slots<> { | 124 class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
| 125 public: | 125 public: |
| 126 enum Flags { RTCP = 0x1, RTCP_MUX = 0x2, SECURE = 0x4, SSRC_MUX = 0x8, | 126 enum Flags { RTCP = 0x1, RTCP_MUX = 0x2, SECURE = 0x4, SSRC_MUX = 0x8, |
| 127 DTLS = 0x10 }; | 127 DTLS = 0x10 }; |
| 128 | 128 |
| 129 ChannelTest(bool verify_playout, | 129 ChannelTest(bool verify_playout, |
| 130 const uint8* rtp_data, | 130 const uint8_t* rtp_data, |
| 131 int rtp_len, | 131 int rtp_len, |
| 132 const uint8* rtcp_data, | 132 const uint8_t* rtcp_data, |
| 133 int rtcp_len) | 133 int rtcp_len) |
| 134 : verify_playout_(verify_playout), | 134 : verify_playout_(verify_playout), |
| 135 transport_controller1_(cricket::ICEROLE_CONTROLLING), | 135 transport_controller1_(cricket::ICEROLE_CONTROLLING), |
| 136 transport_controller2_(cricket::ICEROLE_CONTROLLED), | 136 transport_controller2_(cricket::ICEROLE_CONTROLLED), |
| 137 media_channel1_(NULL), | 137 media_channel1_(NULL), |
| 138 media_channel2_(NULL), | 138 media_channel2_(NULL), |
| 139 rtp_packet_(reinterpret_cast<const char*>(rtp_data), rtp_len), | 139 rtp_packet_(reinterpret_cast<const char*>(rtp_data), rtp_len), |
| 140 rtcp_packet_(reinterpret_cast<const char*>(rtcp_data), rtcp_len), | 140 rtcp_packet_(reinterpret_cast<const char*>(rtcp_data), rtcp_len), |
| 141 media_info_callbacks1_(), | 141 media_info_callbacks1_(), |
| 142 media_info_callbacks2_() {} | 142 media_info_callbacks2_() {} |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 } | 302 } |
| 303 bool SendRtcp1() { | 303 bool SendRtcp1() { |
| 304 return media_channel1_->SendRtcp(rtcp_packet_.c_str(), | 304 return media_channel1_->SendRtcp(rtcp_packet_.c_str(), |
| 305 static_cast<int>(rtcp_packet_.size())); | 305 static_cast<int>(rtcp_packet_.size())); |
| 306 } | 306 } |
| 307 bool SendRtcp2() { | 307 bool SendRtcp2() { |
| 308 return media_channel2_->SendRtcp(rtcp_packet_.c_str(), | 308 return media_channel2_->SendRtcp(rtcp_packet_.c_str(), |
| 309 static_cast<int>(rtcp_packet_.size())); | 309 static_cast<int>(rtcp_packet_.size())); |
| 310 } | 310 } |
| 311 // Methods to send custom data. | 311 // Methods to send custom data. |
| 312 bool SendCustomRtp1(uint32 ssrc, int sequence_number, int pl_type = -1) { | 312 bool SendCustomRtp1(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
| 313 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 313 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
| 314 return media_channel1_->SendRtp(data.c_str(), | 314 return media_channel1_->SendRtp(data.c_str(), |
| 315 static_cast<int>(data.size())); | 315 static_cast<int>(data.size())); |
| 316 } | 316 } |
| 317 bool SendCustomRtp2(uint32 ssrc, int sequence_number, int pl_type = -1) { | 317 bool SendCustomRtp2(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
| 318 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 318 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
| 319 return media_channel2_->SendRtp(data.c_str(), | 319 return media_channel2_->SendRtp(data.c_str(), |
| 320 static_cast<int>(data.size())); | 320 static_cast<int>(data.size())); |
| 321 } | 321 } |
| 322 bool SendCustomRtcp1(uint32 ssrc) { | 322 bool SendCustomRtcp1(uint32_t ssrc) { |
| 323 std::string data(CreateRtcpData(ssrc)); | 323 std::string data(CreateRtcpData(ssrc)); |
| 324 return media_channel1_->SendRtcp(data.c_str(), | 324 return media_channel1_->SendRtcp(data.c_str(), |
| 325 static_cast<int>(data.size())); | 325 static_cast<int>(data.size())); |
| 326 } | 326 } |
| 327 bool SendCustomRtcp2(uint32 ssrc) { | 327 bool SendCustomRtcp2(uint32_t ssrc) { |
| 328 std::string data(CreateRtcpData(ssrc)); | 328 std::string data(CreateRtcpData(ssrc)); |
| 329 return media_channel2_->SendRtcp(data.c_str(), | 329 return media_channel2_->SendRtcp(data.c_str(), |
| 330 static_cast<int>(data.size())); | 330 static_cast<int>(data.size())); |
| 331 } | 331 } |
| 332 bool CheckRtp1() { | 332 bool CheckRtp1() { |
| 333 return media_channel1_->CheckRtp(rtp_packet_.c_str(), | 333 return media_channel1_->CheckRtp(rtp_packet_.c_str(), |
| 334 static_cast<int>(rtp_packet_.size())); | 334 static_cast<int>(rtp_packet_.size())); |
| 335 } | 335 } |
| 336 bool CheckRtp2() { | 336 bool CheckRtp2() { |
| 337 return media_channel2_->CheckRtp(rtp_packet_.c_str(), | 337 return media_channel2_->CheckRtp(rtp_packet_.c_str(), |
| 338 static_cast<int>(rtp_packet_.size())); | 338 static_cast<int>(rtp_packet_.size())); |
| 339 } | 339 } |
| 340 bool CheckRtcp1() { | 340 bool CheckRtcp1() { |
| 341 return media_channel1_->CheckRtcp(rtcp_packet_.c_str(), | 341 return media_channel1_->CheckRtcp(rtcp_packet_.c_str(), |
| 342 static_cast<int>(rtcp_packet_.size())); | 342 static_cast<int>(rtcp_packet_.size())); |
| 343 } | 343 } |
| 344 bool CheckRtcp2() { | 344 bool CheckRtcp2() { |
| 345 return media_channel2_->CheckRtcp(rtcp_packet_.c_str(), | 345 return media_channel2_->CheckRtcp(rtcp_packet_.c_str(), |
| 346 static_cast<int>(rtcp_packet_.size())); | 346 static_cast<int>(rtcp_packet_.size())); |
| 347 } | 347 } |
| 348 // Methods to check custom data. | 348 // Methods to check custom data. |
| 349 bool CheckCustomRtp1(uint32 ssrc, int sequence_number, int pl_type = -1 ) { | 349 bool CheckCustomRtp1(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
| 350 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 350 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
| 351 return media_channel1_->CheckRtp(data.c_str(), | 351 return media_channel1_->CheckRtp(data.c_str(), |
| 352 static_cast<int>(data.size())); | 352 static_cast<int>(data.size())); |
| 353 } | 353 } |
| 354 bool CheckCustomRtp2(uint32 ssrc, int sequence_number, int pl_type = -1) { | 354 bool CheckCustomRtp2(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
| 355 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 355 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
| 356 return media_channel2_->CheckRtp(data.c_str(), | 356 return media_channel2_->CheckRtp(data.c_str(), |
| 357 static_cast<int>(data.size())); | 357 static_cast<int>(data.size())); |
| 358 } | 358 } |
| 359 bool CheckCustomRtcp1(uint32 ssrc) { | 359 bool CheckCustomRtcp1(uint32_t ssrc) { |
| 360 std::string data(CreateRtcpData(ssrc)); | 360 std::string data(CreateRtcpData(ssrc)); |
| 361 return media_channel1_->CheckRtcp(data.c_str(), | 361 return media_channel1_->CheckRtcp(data.c_str(), |
| 362 static_cast<int>(data.size())); | 362 static_cast<int>(data.size())); |
| 363 } | 363 } |
| 364 bool CheckCustomRtcp2(uint32 ssrc) { | 364 bool CheckCustomRtcp2(uint32_t ssrc) { |
| 365 std::string data(CreateRtcpData(ssrc)); | 365 std::string data(CreateRtcpData(ssrc)); |
| 366 return media_channel2_->CheckRtcp(data.c_str(), | 366 return media_channel2_->CheckRtcp(data.c_str(), |
| 367 static_cast<int>(data.size())); | 367 static_cast<int>(data.size())); |
| 368 } | 368 } |
| 369 std::string CreateRtpData(uint32 ssrc, int sequence_number, int pl_type) { | 369 std::string CreateRtpData(uint32_t ssrc, int sequence_number, int pl_type) { |
| 370 std::string data(rtp_packet_); | 370 std::string data(rtp_packet_); |
| 371 // Set SSRC in the rtp packet copy. | 371 // Set SSRC in the rtp packet copy. |
| 372 rtc::SetBE32(const_cast<char*>(data.c_str()) + 8, ssrc); | 372 rtc::SetBE32(const_cast<char*>(data.c_str()) + 8, ssrc); |
| 373 rtc::SetBE16(const_cast<char*>(data.c_str()) + 2, sequence_number); | 373 rtc::SetBE16(const_cast<char*>(data.c_str()) + 2, sequence_number); |
| 374 if (pl_type >= 0) { | 374 if (pl_type >= 0) { |
| 375 rtc::Set8(const_cast<char*>(data.c_str()), 1, | 375 rtc::Set8(const_cast<char*>(data.c_str()), 1, |
| 376 static_cast<uint8_t>(pl_type)); | 376 static_cast<uint8_t>(pl_type)); |
| 377 } | 377 } |
| 378 return data; | 378 return data; |
| 379 } | 379 } |
| 380 std::string CreateRtcpData(uint32 ssrc) { | 380 std::string CreateRtcpData(uint32_t ssrc) { |
| 381 std::string data(rtcp_packet_); | 381 std::string data(rtcp_packet_); |
| 382 // Set SSRC in the rtcp packet copy. | 382 // Set SSRC in the rtcp packet copy. |
| 383 rtc::SetBE32(const_cast<char*>(data.c_str()) + 4, ssrc); | 383 rtc::SetBE32(const_cast<char*>(data.c_str()) + 4, ssrc); |
| 384 return data; | 384 return data; |
| 385 } | 385 } |
| 386 | 386 |
| 387 bool CheckNoRtp1() { | 387 bool CheckNoRtp1() { |
| 388 return media_channel1_->CheckNoRtp(); | 388 return media_channel1_->CheckNoRtp(); |
| 389 } | 389 } |
| 390 bool CheckNoRtp2() { | 390 bool CheckNoRtp2() { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 403 typename T::Content* content) { | 403 typename T::Content* content) { |
| 404 // overridden in specialized classes | 404 // overridden in specialized classes |
| 405 } | 405 } |
| 406 void CopyContent(const typename T::Content& source, | 406 void CopyContent(const typename T::Content& source, |
| 407 typename T::Content* content) { | 407 typename T::Content* content) { |
| 408 // overridden in specialized classes | 408 // overridden in specialized classes |
| 409 } | 409 } |
| 410 | 410 |
| 411 // Creates a cricket::SessionDescription with one MediaContent and one stream. | 411 // Creates a cricket::SessionDescription with one MediaContent and one stream. |
| 412 // kPcmuCodec is used as audio codec and kH264Codec is used as video codec. | 412 // kPcmuCodec is used as audio codec and kH264Codec is used as video codec. |
| 413 cricket::SessionDescription* CreateSessionDescriptionWithStream(uint32 ssrc) { | 413 cricket::SessionDescription* CreateSessionDescriptionWithStream( |
| 414 uint32_t ssrc) { |
| 414 typename T::Content content; | 415 typename T::Content content; |
| 415 cricket::SessionDescription* sdesc = new cricket::SessionDescription(); | 416 cricket::SessionDescription* sdesc = new cricket::SessionDescription(); |
| 416 CreateContent(SECURE, kPcmuCodec, kH264Codec, &content); | 417 CreateContent(SECURE, kPcmuCodec, kH264Codec, &content); |
| 417 AddLegacyStreamInContent(ssrc, 0, &content); | 418 AddLegacyStreamInContent(ssrc, 0, &content); |
| 418 sdesc->AddContent("DUMMY_CONTENT_NAME", | 419 sdesc->AddContent("DUMMY_CONTENT_NAME", |
| 419 cricket::NS_JINGLE_RTP, content.Copy()); | 420 cricket::NS_JINGLE_RTP, content.Copy()); |
| 420 return sdesc; | 421 return sdesc; |
| 421 } | 422 } |
| 422 | 423 |
| 423 class CallThread : public rtc::SignalThread { | 424 class CallThread : public rtc::SignalThread { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 | 460 |
| 460 void OnMediaMonitor(typename T::Channel* channel, | 461 void OnMediaMonitor(typename T::Channel* channel, |
| 461 const typename T::MediaInfo& info) { | 462 const typename T::MediaInfo& info) { |
| 462 if (channel == channel1_.get()) { | 463 if (channel == channel1_.get()) { |
| 463 media_info_callbacks1_++; | 464 media_info_callbacks1_++; |
| 464 } else if (channel == channel2_.get()) { | 465 } else if (channel == channel2_.get()) { |
| 465 media_info_callbacks2_++; | 466 media_info_callbacks2_++; |
| 466 } | 467 } |
| 467 } | 468 } |
| 468 | 469 |
| 469 void AddLegacyStreamInContent(uint32 ssrc, int flags, | 470 void AddLegacyStreamInContent(uint32_t ssrc, |
| 470 typename T::Content* content) { | 471 int flags, |
| 472 typename T::Content* content) { |
| 471 // Base implementation. | 473 // Base implementation. |
| 472 } | 474 } |
| 473 | 475 |
| 474 // Tests that can be used by derived classes. | 476 // Tests that can be used by derived classes. |
| 475 | 477 |
| 476 // Basic sanity check. | 478 // Basic sanity check. |
| 477 void TestInit() { | 479 void TestInit() { |
| 478 CreateChannels(0, 0); | 480 CreateChannels(0, 0); |
| 479 EXPECT_FALSE(channel1_->secure()); | 481 EXPECT_FALSE(channel1_->secure()); |
| 480 EXPECT_FALSE(media_channel1_->sending()); | 482 EXPECT_FALSE(media_channel1_->sending()); |
| (...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1443 void SendBundleToBundle( | 1445 void SendBundleToBundle( |
| 1444 const int* pl_types, int len, bool rtcp_mux, bool secure) { | 1446 const int* pl_types, int len, bool rtcp_mux, bool secure) { |
| 1445 ASSERT_EQ(2, len); | 1447 ASSERT_EQ(2, len); |
| 1446 int sequence_number1_1 = 0, sequence_number2_2 = 0; | 1448 int sequence_number1_1 = 0, sequence_number2_2 = 0; |
| 1447 // Only pl_type1 was added to the bundle filter for both |channel1_| | 1449 // Only pl_type1 was added to the bundle filter for both |channel1_| |
| 1448 // and |channel2_|. | 1450 // and |channel2_|. |
| 1449 int pl_type1 = pl_types[0]; | 1451 int pl_type1 = pl_types[0]; |
| 1450 int pl_type2 = pl_types[1]; | 1452 int pl_type2 = pl_types[1]; |
| 1451 int flags = SSRC_MUX | RTCP; | 1453 int flags = SSRC_MUX | RTCP; |
| 1452 if (secure) flags |= SECURE; | 1454 if (secure) flags |= SECURE; |
| 1453 uint32 expected_channels = 2U; | 1455 uint32_t expected_channels = 2U; |
| 1454 if (rtcp_mux) { | 1456 if (rtcp_mux) { |
| 1455 flags |= RTCP_MUX; | 1457 flags |= RTCP_MUX; |
| 1456 expected_channels = 1U; | 1458 expected_channels = 1U; |
| 1457 } | 1459 } |
| 1458 CreateChannels(flags, flags); | 1460 CreateChannels(flags, flags); |
| 1459 EXPECT_TRUE(SendInitiate()); | 1461 EXPECT_TRUE(SendInitiate()); |
| 1460 ASSERT_TRUE(GetTransport1()); | 1462 ASSERT_TRUE(GetTransport1()); |
| 1461 ASSERT_TRUE(GetTransport2()); | 1463 ASSERT_TRUE(GetTransport2()); |
| 1462 EXPECT_EQ(2U, GetTransport1()->channels().size()); | 1464 EXPECT_EQ(2U, GetTransport1()->channels().size()); |
| 1463 EXPECT_EQ(expected_channels, GetTransport2()->channels().size()); | 1465 EXPECT_EQ(expected_channels, GetTransport2()->channels().size()); |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1827 *audio = source; | 1829 *audio = source; |
| 1828 } | 1830 } |
| 1829 | 1831 |
| 1830 template<> | 1832 template<> |
| 1831 bool ChannelTest<VoiceTraits>::CodecMatches(const cricket::AudioCodec& c1, | 1833 bool ChannelTest<VoiceTraits>::CodecMatches(const cricket::AudioCodec& c1, |
| 1832 const cricket::AudioCodec& c2) { | 1834 const cricket::AudioCodec& c2) { |
| 1833 return c1.name == c2.name && c1.clockrate == c2.clockrate && | 1835 return c1.name == c2.name && c1.clockrate == c2.clockrate && |
| 1834 c1.bitrate == c2.bitrate && c1.channels == c2.channels; | 1836 c1.bitrate == c2.bitrate && c1.channels == c2.channels; |
| 1835 } | 1837 } |
| 1836 | 1838 |
| 1837 template<> | 1839 template <> |
| 1838 void ChannelTest<VoiceTraits>::AddLegacyStreamInContent( | 1840 void ChannelTest<VoiceTraits>::AddLegacyStreamInContent( |
| 1839 uint32 ssrc, int flags, cricket::AudioContentDescription* audio) { | 1841 uint32_t ssrc, |
| 1842 int flags, |
| 1843 cricket::AudioContentDescription* audio) { |
| 1840 audio->AddLegacyStream(ssrc); | 1844 audio->AddLegacyStream(ssrc); |
| 1841 } | 1845 } |
| 1842 | 1846 |
| 1843 class VoiceChannelTest | 1847 class VoiceChannelTest |
| 1844 : public ChannelTest<VoiceTraits> { | 1848 : public ChannelTest<VoiceTraits> { |
| 1845 public: | 1849 public: |
| 1846 typedef ChannelTest<VoiceTraits> Base; | 1850 typedef ChannelTest<VoiceTraits> Base; |
| 1847 VoiceChannelTest() | 1851 VoiceChannelTest() |
| 1848 : Base(true, | 1852 : Base(true, |
| 1849 kPcmuFrame, | 1853 kPcmuFrame, |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1897 *video = source; | 1901 *video = source; |
| 1898 } | 1902 } |
| 1899 | 1903 |
| 1900 template<> | 1904 template<> |
| 1901 bool ChannelTest<VideoTraits>::CodecMatches(const cricket::VideoCodec& c1, | 1905 bool ChannelTest<VideoTraits>::CodecMatches(const cricket::VideoCodec& c1, |
| 1902 const cricket::VideoCodec& c2) { | 1906 const cricket::VideoCodec& c2) { |
| 1903 return c1.name == c2.name && c1.width == c2.width && c1.height == c2.height && | 1907 return c1.name == c2.name && c1.width == c2.width && c1.height == c2.height && |
| 1904 c1.framerate == c2.framerate; | 1908 c1.framerate == c2.framerate; |
| 1905 } | 1909 } |
| 1906 | 1910 |
| 1907 template<> | 1911 template <> |
| 1908 void ChannelTest<VideoTraits>::AddLegacyStreamInContent( | 1912 void ChannelTest<VideoTraits>::AddLegacyStreamInContent( |
| 1909 uint32 ssrc, int flags, cricket::VideoContentDescription* video) { | 1913 uint32_t ssrc, |
| 1914 int flags, |
| 1915 cricket::VideoContentDescription* video) { |
| 1910 video->AddLegacyStream(ssrc); | 1916 video->AddLegacyStream(ssrc); |
| 1911 } | 1917 } |
| 1912 | 1918 |
| 1913 class VideoChannelTest | 1919 class VideoChannelTest |
| 1914 : public ChannelTest<VideoTraits> { | 1920 : public ChannelTest<VideoTraits> { |
| 1915 public: | 1921 public: |
| 1916 typedef ChannelTest<VideoTraits> Base; | 1922 typedef ChannelTest<VideoTraits> Base; |
| 1917 VideoChannelTest() | 1923 VideoChannelTest() |
| 1918 : Base(false, | 1924 : Base(false, |
| 1919 kH264Packet, | 1925 kH264Packet, |
| (...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2644 cricket::DataContentDescription* data) { | 2650 cricket::DataContentDescription* data) { |
| 2645 *data = source; | 2651 *data = source; |
| 2646 } | 2652 } |
| 2647 | 2653 |
| 2648 template<> | 2654 template<> |
| 2649 bool ChannelTest<DataTraits>::CodecMatches(const cricket::DataCodec& c1, | 2655 bool ChannelTest<DataTraits>::CodecMatches(const cricket::DataCodec& c1, |
| 2650 const cricket::DataCodec& c2) { | 2656 const cricket::DataCodec& c2) { |
| 2651 return c1.name == c2.name; | 2657 return c1.name == c2.name; |
| 2652 } | 2658 } |
| 2653 | 2659 |
| 2654 template<> | 2660 template <> |
| 2655 void ChannelTest<DataTraits>::AddLegacyStreamInContent( | 2661 void ChannelTest<DataTraits>::AddLegacyStreamInContent( |
| 2656 uint32 ssrc, int flags, cricket::DataContentDescription* data) { | 2662 uint32_t ssrc, |
| 2663 int flags, |
| 2664 cricket::DataContentDescription* data) { |
| 2657 data->AddLegacyStream(ssrc); | 2665 data->AddLegacyStream(ssrc); |
| 2658 } | 2666 } |
| 2659 | 2667 |
| 2660 TEST_F(DataChannelTest, TestInit) { | 2668 TEST_F(DataChannelTest, TestInit) { |
| 2661 Base::TestInit(); | 2669 Base::TestInit(); |
| 2662 EXPECT_FALSE(media_channel1_->IsStreamMuted(0)); | 2670 EXPECT_FALSE(media_channel1_->IsStreamMuted(0)); |
| 2663 } | 2671 } |
| 2664 | 2672 |
| 2665 TEST_F(DataChannelTest, TestSetContents) { | 2673 TEST_F(DataChannelTest, TestSetContents) { |
| 2666 Base::TestSetContents(); | 2674 Base::TestSetContents(); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2794 }; | 2802 }; |
| 2795 rtc::Buffer payload(data, 3); | 2803 rtc::Buffer payload(data, 3); |
| 2796 cricket::SendDataResult result; | 2804 cricket::SendDataResult result; |
| 2797 ASSERT_TRUE(media_channel1_->SendData(params, payload, &result)); | 2805 ASSERT_TRUE(media_channel1_->SendData(params, payload, &result)); |
| 2798 EXPECT_EQ(params.ssrc, | 2806 EXPECT_EQ(params.ssrc, |
| 2799 media_channel1_->last_sent_data_params().ssrc); | 2807 media_channel1_->last_sent_data_params().ssrc); |
| 2800 EXPECT_EQ("foo", media_channel1_->last_sent_data()); | 2808 EXPECT_EQ("foo", media_channel1_->last_sent_data()); |
| 2801 } | 2809 } |
| 2802 | 2810 |
| 2803 // TODO(pthatcher): TestSetReceiver? | 2811 // TODO(pthatcher): TestSetReceiver? |
| OLD | NEW |