Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 1362303002: Reland "Wire up send-side bandwidth estimation." (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc ('k') | webrtc/video/rampup_tests.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 #include <algorithm> 10 #include <algorithm>
11 #include <map> 11 #include <map>
12 #include <sstream> 12 #include <sstream>
13 #include <string> 13 #include <string>
14 14
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 #include "webrtc/base/checks.h" 17 #include "webrtc/base/checks.h"
18 #include "webrtc/base/event.h"
18 #include "webrtc/base/scoped_ptr.h" 19 #include "webrtc/base/scoped_ptr.h"
19 #include "webrtc/call.h" 20 #include "webrtc/call.h"
20 #include "webrtc/frame_callback.h" 21 #include "webrtc/frame_callback.h"
21 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" 22 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
22 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h" 23 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
23 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h" 24 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
24 #include "webrtc/modules/video_coding/main/interface/video_coding_defines.h" 25 #include "webrtc/modules/video_coding/main/interface/video_coding_defines.h"
25 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h" 26 #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
26 #include "webrtc/system_wrappers/interface/event_wrapper.h" 27 #include "webrtc/system_wrappers/interface/event_wrapper.h"
27 #include "webrtc/system_wrappers/interface/metrics.h" 28 #include "webrtc/system_wrappers/interface/metrics.h"
(...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 return observer_; 1439 return observer_;
1439 } 1440 }
1440 1441
1441 private: 1442 private:
1442 RtpExtensionHeaderObserver* observer_; 1443 RtpExtensionHeaderObserver* observer_;
1443 } tester; 1444 } tester;
1444 1445
1445 tester.RunTest(); 1446 tester.RunTest();
1446 } 1447 }
1447 1448
1449 TEST_F(EndToEndTest, ReceivesTransportFeedback) {
1450 static const int kExtensionId = 5;
1451
1452 class TransportFeedbackObserver : public test::DirectTransport {
1453 public:
1454 TransportFeedbackObserver(rtc::Event* done_event) : done_(done_event) {}
1455 virtual ~TransportFeedbackObserver() {}
1456
1457 bool SendRtcp(const uint8_t* data, size_t length) override {
1458 RTCPUtility::RTCPParserV2 parser(data, length, true);
1459 EXPECT_TRUE(parser.IsValid());
1460
1461 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin();
1462 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) {
1463 if (packet_type == RTCPUtility::RTCPPacketTypes::kTransportFeedback) {
1464 done_->Set();
1465 break;
1466 }
1467 packet_type = parser.Iterate();
1468 }
1469
1470 return test::DirectTransport::SendRtcp(data, length);
1471 }
1472
1473 rtc::Event* done_;
1474 };
1475
1476 class TransportFeedbackTester : public MultiStreamTest {
1477 public:
1478 TransportFeedbackTester() : done_(false, false) {}
1479 virtual ~TransportFeedbackTester() {}
1480
1481 protected:
1482 void Wait() override {
1483 EXPECT_TRUE(done_.Wait(CallTest::kDefaultTimeoutMs));
1484 }
1485
1486 void UpdateSendConfig(
1487 size_t stream_index,
1488 VideoSendStream::Config* send_config,
1489 VideoEncoderConfig* encoder_config,
1490 test::FrameGeneratorCapturer** frame_generator) override {
1491 send_config->rtp.extensions.push_back(
1492 RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId));
1493 }
1494
1495 void UpdateReceiveConfig(
1496 size_t stream_index,
1497 VideoReceiveStream::Config* receive_config) override {
1498 receive_config->rtp.extensions.push_back(
1499 RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId));
1500 }
1501
1502 virtual test::DirectTransport* CreateReceiveTransport() {
1503 return new TransportFeedbackObserver(&done_);
1504 }
1505
1506 private:
1507 rtc::Event done_;
1508 } tester;
1509 tester.RunTest();
1510 }
1448 TEST_F(EndToEndTest, ObserversEncodedFrames) { 1511 TEST_F(EndToEndTest, ObserversEncodedFrames) {
1449 class EncodedFrameTestObserver : public EncodedFrameObserver { 1512 class EncodedFrameTestObserver : public EncodedFrameObserver {
1450 public: 1513 public:
1451 EncodedFrameTestObserver() 1514 EncodedFrameTestObserver()
1452 : length_(0), 1515 : length_(0),
1453 frame_type_(kFrameEmpty), 1516 frame_type_(kFrameEmpty),
1454 called_(EventWrapper::Create()) {} 1517 called_(EventWrapper::Create()) {}
1455 virtual ~EncodedFrameTestObserver() {} 1518 virtual ~EncodedFrameTestObserver() {}
1456 1519
1457 virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) { 1520 virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) {
(...skipping 1601 matching lines...) Expand 10 before | Expand all | Expand 10 after
3059 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) 3122 EXPECT_TRUE(default_receive_config.rtp.rtx.empty())
3060 << "Enabling RTX requires rtpmap: rtx negotiation."; 3123 << "Enabling RTX requires rtpmap: rtx negotiation.";
3061 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) 3124 EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
3062 << "Enabling RTP extensions require negotiation."; 3125 << "Enabling RTP extensions require negotiation.";
3063 3126
3064 VerifyEmptyNackConfig(default_receive_config.rtp.nack); 3127 VerifyEmptyNackConfig(default_receive_config.rtp.nack);
3065 VerifyEmptyFecConfig(default_receive_config.rtp.fec); 3128 VerifyEmptyFecConfig(default_receive_config.rtp.fec);
3066 } 3129 }
3067 3130
3068 } // namespace webrtc 3131 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc ('k') | webrtc/video/rampup_tests.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698