| Index: webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
|
| diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
|
| index 01cf7cbe3dd68880a64365d82a2b371e6ce8df0a..875c8f798f031e507811b7f882fd18b7b54b6d12 100644
|
| --- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
|
| +++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
|
| @@ -332,7 +332,7 @@ class BweTestFramework_DelayFilterTest : public ::testing::Test {
|
| }
|
|
|
| void TestDelayFilter(int64_t delay_ms) {
|
| - filter_.SetDelayMs(delay_ms);
|
| + filter_.SetOneWayDelayMs(delay_ms);
|
| TestDelayFilter(1, 0, 0); // No input should yield no output
|
|
|
| // Single packet
|
| @@ -340,7 +340,7 @@ class BweTestFramework_DelayFilterTest : public ::testing::Test {
|
| TestDelayFilter(delay_ms, 0, 0);
|
|
|
| for (int i = 0; i < delay_ms; ++i) {
|
| - filter_.SetDelayMs(i);
|
| + filter_.SetOneWayDelayMs(i);
|
| TestDelayFilter(1, 10, 10);
|
| }
|
| TestDelayFilter(0, 0, 0);
|
| @@ -350,11 +350,11 @@ class BweTestFramework_DelayFilterTest : public ::testing::Test {
|
| TestDelayFilter(delay_ms, 0, 0);
|
|
|
| for (int i = 1; i < delay_ms + 1; ++i) {
|
| - filter_.SetDelayMs(i);
|
| + filter_.SetOneWayDelayMs(i);
|
| TestDelayFilter(1, 5, 5);
|
| }
|
| TestDelayFilter(0, 0, 0);
|
| - filter_.SetDelayMs(2 * delay_ms);
|
| + filter_.SetOneWayDelayMs(2 * delay_ms);
|
| TestDelayFilter(1, 0, 0);
|
| TestDelayFilter(delay_ms, 13, 13);
|
| TestDelayFilter(delay_ms, 0, 0);
|
| @@ -363,11 +363,11 @@ class BweTestFramework_DelayFilterTest : public ::testing::Test {
|
| TestDelayFilter(delay_ms, 0, 0);
|
|
|
| for (int i = 0; i < 2 * delay_ms; ++i) {
|
| - filter_.SetDelayMs(2 * delay_ms - i - 1);
|
| + filter_.SetOneWayDelayMs(2 * delay_ms - i - 1);
|
| TestDelayFilter(1, 5, 5);
|
| }
|
| TestDelayFilter(0, 0, 0);
|
| - filter_.SetDelayMs(0);
|
| + filter_.SetOneWayDelayMs(0);
|
| TestDelayFilter(0, 7, 7);
|
|
|
| ASSERT_TRUE(IsTimeSorted(accumulated_packets_));
|
| @@ -388,7 +388,7 @@ TEST_F(BweTestFramework_DelayFilterTest, Delay0) {
|
| TestDelayFilter(1, 0, 0); // No input should yield no output
|
| TestDelayFilter(1, 10, 10); // Expect no delay (delay time is zero)
|
| TestDelayFilter(1, 0, 0); // Check no packets are still in buffer
|
| - filter_.SetDelayMs(0);
|
| + filter_.SetOneWayDelayMs(0);
|
| TestDelayFilter(1, 5, 5); // Expect no delay (delay time is zero)
|
| TestDelayFilter(1, 0, 0); // Check no packets are still in buffer
|
| }
|
| @@ -415,7 +415,7 @@ TEST_F(BweTestFramework_DelayFilterTest, JumpToZeroDelay) {
|
| Packets packets;
|
|
|
| // Delay a bunch of packets, accumulate them to the 'acc' list.
|
| - delay.SetDelayMs(100.0f);
|
| + delay.SetOneWayDelayMs(100.0f);
|
| for (uint32_t i = 0; i < 10; ++i) {
|
| packets.push_back(new MediaPacket(i * 100, i));
|
| }
|
| @@ -426,7 +426,7 @@ TEST_F(BweTestFramework_DelayFilterTest, JumpToZeroDelay) {
|
|
|
| // Drop delay to zero, send a few more packets through the delay, append them
|
| // to the 'acc' list and verify that it is all sorted.
|
| - delay.SetDelayMs(0.0f);
|
| + delay.SetOneWayDelayMs(0.0f);
|
| for (uint32_t i = 10; i < 50; ++i) {
|
| packets.push_back(new MediaPacket(i * 100, i));
|
| }
|
| @@ -445,12 +445,12 @@ TEST_F(BweTestFramework_DelayFilterTest, IncreasingDelay) {
|
| TestDelayFilter(i);
|
| }
|
| // Reach a steady state.
|
| - filter_.SetDelayMs(100);
|
| + filter_.SetOneWayDelayMs(100);
|
| TestDelayFilter(1, 20, 20);
|
| TestDelayFilter(2, 0, 0);
|
| TestDelayFilter(99, 20, 20);
|
| // Drop delay back down to zero.
|
| - filter_.SetDelayMs(0);
|
| + filter_.SetOneWayDelayMs(0);
|
| TestDelayFilter(1, 100, 100);
|
| TestDelayFilter(23010, 0, 0);
|
| ASSERT_TRUE(IsTimeSorted(accumulated_packets_));
|
| @@ -643,7 +643,7 @@ class BweTestFramework_ChokeFilterTest : public ::testing::Test {
|
| delete output_packets_.front();
|
| output_packets_.pop_front();
|
| }
|
| - EXPECT_EQ(expected_kbit_transmitted, (bytes_transmitted * 8) / 1000);
|
| + EXPECT_EQ(expected_kbit_transmitted, (bytes_transmitted * 8 + 500) / 1000);
|
| }
|
|
|
| void CheckMaxDelay(int64_t max_delay_ms) {
|
| @@ -672,7 +672,7 @@ TEST_F(BweTestFramework_ChokeFilterTest, NoQueue) {
|
| uint16_t sequence_number = 0;
|
| int64_t send_time_us = 0;
|
| ChokeFilter filter(NULL, 0);
|
| - filter.SetCapacity(10);
|
| + filter.set_capacity_kbps(10);
|
| Packets packets;
|
| RTPHeader header;
|
| for (int i = 0; i < 2; ++i) {
|
| @@ -699,14 +699,14 @@ TEST_F(BweTestFramework_ChokeFilterTest, Short) {
|
| // That is actually just a single packet, since each packet has 1000 bits of
|
| // payload.
|
| ChokeFilter filter(NULL, 0);
|
| - filter.SetCapacity(10);
|
| + filter.set_capacity_kbps(10);
|
| TestChoke(&filter, 100, 100, 1);
|
| }
|
|
|
| TEST_F(BweTestFramework_ChokeFilterTest, Medium) {
|
| // 100ms, 10 packets, 10 kbps choke -> 1 packet through, or 1 kbit.
|
| ChokeFilter filter(NULL, 0);
|
| - filter.SetCapacity(10);
|
| + filter.set_capacity_kbps(10);
|
| TestChoke(&filter, 100, 10, 1);
|
| // 200ms, no new packets -> another packet through.
|
| TestChoke(&filter, 100, 0, 1);
|
| @@ -719,7 +719,7 @@ TEST_F(BweTestFramework_ChokeFilterTest, Medium) {
|
| TEST_F(BweTestFramework_ChokeFilterTest, Long) {
|
| // 100ms, 100 packets in queue, 10 kbps choke -> 1 packet through, or 1 kbit.
|
| ChokeFilter filter(NULL, 0);
|
| - filter.SetCapacity(10);
|
| + filter.set_capacity_kbps(10);
|
| TestChoke(&filter, 100, 100, 1);
|
| // 200ms, no input, another packet through.
|
| TestChoke(&filter, 100, 0, 1);
|
| @@ -727,22 +727,22 @@ TEST_F(BweTestFramework_ChokeFilterTest, Long) {
|
| TestChoke(&filter, 800, 0, 8);
|
| // 10000ms, no input, raise choke to 100 kbps. Remaining 90 packets in queue
|
| // should be propagated, for a total of 90 kbps.
|
| - filter.SetCapacity(100);
|
| + filter.set_capacity_kbps(100);
|
| TestChoke(&filter, 9000, 0, 90);
|
| // 10100ms, 20 more packets -> 10 packets or 10 kbit through.
|
| TestChoke(&filter, 100, 20, 10);
|
| // 10300ms, 10 more packets -> 20 packets out.
|
| TestChoke(&filter, 200, 10, 20);
|
| // 11300ms, no input, queue should be empty.
|
| - filter.SetCapacity(10);
|
| + filter.set_capacity_kbps(10);
|
| TestChoke(&filter, 1000, 0, 0);
|
| }
|
|
|
| TEST_F(BweTestFramework_ChokeFilterTest, MaxDelay) {
|
| // 10 kbps choke, 500 ms delay cap
|
| ChokeFilter filter(NULL, 0);
|
| - filter.SetCapacity(10);
|
| - filter.SetMaxDelay(500);
|
| + filter.set_capacity_kbps(10);
|
| + filter.set_max_delay_ms(500);
|
| // 100ms, 100 packets in queue, 10 kbps choke -> 1 packet through, or 1 kbit.
|
| TestChoke(&filter, 100, 100, 1);
|
| CheckMaxDelay(500);
|
| @@ -752,7 +752,7 @@ TEST_F(BweTestFramework_ChokeFilterTest, MaxDelay) {
|
| TestChoke(&filter, 9500, 0, 0);
|
|
|
| // 100 ms delay cap
|
| - filter.SetMaxDelay(100);
|
| + filter.set_max_delay_ms(100);
|
| // 10100ms, 50 more packets -> 1 packets or 1 kbit through.
|
| TestChoke(&filter, 100, 50, 1);
|
| CheckMaxDelay(100);
|
| @@ -760,8 +760,8 @@ TEST_F(BweTestFramework_ChokeFilterTest, MaxDelay) {
|
| TestChoke(&filter, 9900, 0, 0);
|
|
|
| // Reset delay cap (0 is no cap) and verify no packets are dropped.
|
| - filter.SetCapacity(10);
|
| - filter.SetMaxDelay(0);
|
| + filter.set_capacity_kbps(10);
|
| + filter.set_max_delay_ms(0);
|
| TestChoke(&filter, 100, 100, 1);
|
| TestChoke(&filter, 9900, 0, 99);
|
| }
|
| @@ -784,7 +784,7 @@ TEST_F(BweTestFramework_ChokeFilterTest, ShortTraceTwoWraps) {
|
|
|
| TEST_F(BweTestFramework_ChokeFilterTest, ShortTraceMaxDelay) {
|
| TraceBasedDeliveryFilter filter(NULL, 0);
|
| - filter.SetMaxDelay(25);
|
| + filter.set_max_delay_ms(25);
|
| ASSERT_TRUE(filter.Init(test::ResourcePath("synthetic-trace", "rx")));
|
| // Uses all slots up to 110 ms. Several packets are being dropped.
|
| TestChoke(&filter, 110, 20, 9);
|
| @@ -805,12 +805,14 @@ void TestVideoSender(VideoSender* sender,
|
| ASSERT_TRUE(IsTimeSorted(packets));
|
| ASSERT_TRUE(IsSequenceNumberSorted(packets));
|
| EXPECT_EQ(expected_packets, packets.size());
|
| +
|
| int64_t send_time_us = -1;
|
| size_t total_payload_size = 0;
|
| uint32_t absolute_send_time = 0;
|
| uint32_t absolute_send_time_wraps = 0;
|
| uint32_t rtp_timestamp = 0;
|
| uint32_t rtp_timestamp_wraps = 0;
|
| +
|
| for (const auto* packet : packets) {
|
| const MediaPacket* media_packet = static_cast<const MediaPacket*>(packet);
|
| EXPECT_LE(send_time_us, media_packet->send_time_us());
|
| @@ -830,6 +832,7 @@ void TestVideoSender(VideoSender* sender,
|
| }
|
| rtp_timestamp = media_packet->header().timestamp;
|
| }
|
| +
|
| EXPECT_EQ(expected_total_payload_size, total_payload_size);
|
| EXPECT_GE(1u, absolute_send_time_wraps);
|
| EXPECT_GE(1u, rtp_timestamp_wraps);
|
| @@ -838,6 +841,8 @@ void TestVideoSender(VideoSender* sender,
|
| delete packet;
|
| }
|
|
|
| +// Random {-1, 0, +1} ms was added to frame timestamps.
|
| +
|
| TEST(BweTestFramework_VideoSenderTest, Fps1Kbps80_1s) {
|
| // 1 fps, 80 kbps
|
| VideoSource source(0, 1.0f, 80, 0x1234, 0);
|
| @@ -846,14 +851,16 @@ TEST(BweTestFramework_VideoSenderTest, Fps1Kbps80_1s) {
|
| // We're at 1 fps, so all packets should be generated on first call, giving 10
|
| // packets of each 1000 bytes, total 10000 bytes.
|
| TestVideoSender(&sender, 1, 9, 400, 10000);
|
| - // 999ms, should see no output here.
|
| - TestVideoSender(&sender, 998, 0, 0, 0);
|
| - // 1999ms, should get data for one more frame.
|
| - TestVideoSender(&sender, 1000, 9, 400, 10000);
|
| - // 2000ms, one more frame.
|
| - TestVideoSender(&sender, 1, 9, 400, 10000);
|
| - // 2999ms, should see nothing.
|
| - TestVideoSender(&sender, 999, 0, 0, 0);
|
| + // 998ms, should see no output here.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| + // 1001ms, should get data for one more frame.
|
| + TestVideoSender(&sender, 3, 9, 400, 10000);
|
| + // 1998ms, should see no output here.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| + // 2001ms, one more frame.
|
| + TestVideoSender(&sender, 3, 9, 400, 10000);
|
| + // 2998ms, should see nothing.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| }
|
|
|
| TEST(BweTestFramework_VideoSenderTest, Fps1Kbps80_1s_Offset) {
|
| @@ -861,20 +868,20 @@ TEST(BweTestFramework_VideoSenderTest, Fps1Kbps80_1s_Offset) {
|
| VideoSource source(0, 1.0f, 80, 0x1234, 500);
|
| VideoSender sender(NULL, &source, kNullEstimator);
|
| EXPECT_EQ(80000u, source.bits_per_second());
|
| - // 499ms, no output.
|
| - TestVideoSender(&sender, 499, 0, 0, 0);
|
| - // 500ms, first frame (this is the offset we set), 10 packets of 1000 bytes.
|
| - TestVideoSender(&sender, 1, 9, 400, 10000);
|
| - // 1499ms, nothing.
|
| - TestVideoSender(&sender, 999, 0, 0, 0);
|
| - // 1999ms, second frame.
|
| - TestVideoSender(&sender, 500, 9, 400, 10000);
|
| - // 2499ms, nothing.
|
| - TestVideoSender(&sender, 500, 0, 0, 0);
|
| - // 2500ms, third frame.
|
| - TestVideoSender(&sender, 1, 9, 400, 10000);
|
| - // 3499ms, nothing.
|
| - TestVideoSender(&sender, 999, 0, 0, 0);
|
| + // 498ms, no output.
|
| + TestVideoSender(&sender, 498, 0, 0, 0);
|
| + // 501ms, first frame (this is the offset we set), 10 packets of 1000 bytes.
|
| + TestVideoSender(&sender, 3, 9, 400, 10000);
|
| + // 1498ms, nothing.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| + // 1501ms, second frame.
|
| + TestVideoSender(&sender, 3, 9, 400, 10000);
|
| + // 2498ms, nothing.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| + // 2501ms, third frame.
|
| + TestVideoSender(&sender, 3, 9, 400, 10000);
|
| + // 3498ms, nothing.
|
| + TestVideoSender(&sender, 997, 0, 0, 0);
|
| }
|
|
|
| TEST(BweTestFramework_VideoSenderTest, Fps50Kpbs80_11s) {
|
| @@ -882,55 +889,55 @@ TEST(BweTestFramework_VideoSenderTest, Fps50Kpbs80_11s) {
|
| VideoSource source(0, 50.0f, 80, 0x1234, 0);
|
| VideoSender sender(NULL, &source, kNullEstimator);
|
| EXPECT_EQ(80000u, source.bits_per_second());
|
| - // 9998ms, should see 500 frames, 200 byte payloads, total 100000 bytes.
|
| - TestVideoSender(&sender, 9998, 500, 200, 100000);
|
| - // 9999ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| - // 10000ms, 501st frame as a single packet.
|
| - TestVideoSender(&sender, 1, 1, 200, 200);
|
| - // 10998ms, 49 more frames.
|
| - TestVideoSender(&sender, 998, 49, 200, 9800);
|
| - // 10999ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| + // 9981, should see 500 frames, 200 byte payloads, total 100000 bytes.
|
| + TestVideoSender(&sender, 9981, 500, 200, 100000);
|
| + // 9998ms, nothing.
|
| + TestVideoSender(&sender, 17, 0, 0, 0);
|
| + // 10001ms, 501st frame as a single packet.
|
| + TestVideoSender(&sender, 3, 1, 200, 200);
|
| + // 10981ms, 49 more frames.
|
| + TestVideoSender(&sender, 981, 49, 200, 9800);
|
| + // 10998ms, nothing.
|
| + TestVideoSender(&sender, 17, 0, 0, 0);
|
| }
|
|
|
| -TEST(BweTestFramework_VideoSenderTest, Fps10Kpbs120_1s) {
|
| +TEST(BweTestFramework_VideoSenderTest, Fps20Kpbs120_1s) {
|
| // 20 fps, 120 kbps.
|
| VideoSource source(0, 20.0f, 120, 0x1234, 0);
|
| VideoSender sender(NULL, &source, kNullEstimator);
|
| EXPECT_EQ(120000u, source.bits_per_second());
|
| - // 498ms, 10 frames with 750 byte payloads, total 7500 bytes.
|
| - TestVideoSender(&sender, 498, 10, 750, 7500);
|
| - // 499ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| - // 500ms, one more frame.
|
| - TestVideoSender(&sender, 1, 1, 750, 750);
|
| - // 998ms, 9 more frames.
|
| - TestVideoSender(&sender, 498, 9, 750, 6750);
|
| - // 999ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| + // 451ms, 10 frames with 750 byte payloads, total 7500 bytes.
|
| + TestVideoSender(&sender, 451, 10, 750, 7500);
|
| + // 498ms, nothing.
|
| + TestVideoSender(&sender, 47, 0, 0, 0);
|
| + // 501ms, one more frame.
|
| + TestVideoSender(&sender, 3, 1, 750, 750);
|
| + // 951ms, 9 more frames.
|
| + TestVideoSender(&sender, 450, 9, 750, 6750);
|
| + // 998ms, nothing.
|
| + TestVideoSender(&sender, 47, 0, 0, 0);
|
| }
|
|
|
| -TEST(BweTestFramework_VideoSenderTest, Fps30Kbps800_20s) {
|
| - // 20 fps, 820 kbps.
|
| +TEST(BweTestFramework_VideoSenderTest, Fps25Kbps820_20s) {
|
| + // 25 fps, 820 kbps.
|
| VideoSource source(0, 25.0f, 820, 0x1234, 0);
|
| VideoSender sender(NULL, &source, kNullEstimator);
|
| EXPECT_EQ(820000u, source.bits_per_second());
|
| - // 9998ms, 250 frames. 820 kbps = 102500 bytes/s, so total should be 1025000.
|
| + // 9961ms, 250 frames. 820 kbps = 102500 bytes/s, so total should be 1025000.
|
| // Each frame is 102500/25=4100 bytes, or 5 packets (4 @1000 bytes, 1 @100),
|
| // so packet count should be 5*250=1250 and last packet of each frame has
|
| // 100 bytes of payload.
|
| - TestVideoSender(&sender, 9998, 1000, 500, 1025000);
|
| - // 9999ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| - // 19998ms, 250 more frames.
|
| - TestVideoSender(&sender, 9999, 1000, 500, 1025000);
|
| - // 19999ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| - // 20038ms, one more frame, as described above (25fps == 40ms/frame).
|
| - TestVideoSender(&sender, 39, 4, 500, 4100);
|
| - // 20039ms, nothing.
|
| - TestVideoSender(&sender, 1, 0, 0, 0);
|
| + TestVideoSender(&sender, 9961, 1000, 500, 1025000);
|
| + // 9998ms, nothing.
|
| + TestVideoSender(&sender, 37, 0, 0, 0);
|
| + // 19961ms, 250 more frames.
|
| + TestVideoSender(&sender, 9963, 1000, 500, 1025000);
|
| + // 19998ms, nothing.
|
| + TestVideoSender(&sender, 37, 0, 0, 0);
|
| + // 20001ms, one more frame, as described above (25fps == 40ms/frame).
|
| + TestVideoSender(&sender, 3, 4, 500, 4100);
|
| + // 20038ms, nothing.
|
| + TestVideoSender(&sender, 37, 0, 0, 0);
|
| }
|
|
|
| TEST(BweTestFramework_VideoSenderTest, TestAppendInOrder) {
|
| @@ -973,7 +980,7 @@ TEST(BweTestFramework_VideoSenderTest, FeedbackIneffective) {
|
| VideoSender sender(NULL, &source, kNullEstimator);
|
|
|
| EXPECT_EQ(820000u, source.bits_per_second());
|
| - TestVideoSender(&sender, 9998, 1000, 500, 1025000);
|
| + TestVideoSender(&sender, 9961, 1000, 500, 1025000);
|
|
|
| // Make sure feedback has no effect on a regular video sender.
|
| RembFeedback* feedback = new RembFeedback(0, 0, 0, 512000, RTCPReportBlock());
|
| @@ -981,14 +988,14 @@ TEST(BweTestFramework_VideoSenderTest, FeedbackIneffective) {
|
| packets.push_back(feedback);
|
| sender.RunFor(0, &packets);
|
| EXPECT_EQ(820000u, source.bits_per_second());
|
| - TestVideoSender(&sender, 9998, 1000, 500, 1025000);
|
| + TestVideoSender(&sender, 10000, 1000, 500, 1025000);
|
| }
|
|
|
| TEST(BweTestFramework_AdaptiveVideoSenderTest, FeedbackChangesBitrate) {
|
| AdaptiveVideoSource source(0, 25.0f, 820, 0x1234, 0);
|
| VideoSender sender(NULL, &source, kRembEstimator);
|
| EXPECT_EQ(820000u, source.bits_per_second());
|
| - TestVideoSender(&sender, 9998, 1000, 500, 1025000);
|
| + TestVideoSender(&sender, 9961, 1000, 500, 1025000);
|
|
|
| // Make sure we can reduce the bitrate.
|
| RembFeedback* feedback = new RembFeedback(0, 0, 0, 512000, RTCPReportBlock());
|
| @@ -996,7 +1003,7 @@ TEST(BweTestFramework_AdaptiveVideoSenderTest, FeedbackChangesBitrate) {
|
| packets.push_back(feedback);
|
| sender.RunFor(0, &packets);
|
| EXPECT_EQ(512000u, source.bits_per_second());
|
| - TestVideoSender(&sender, 9998, 750, 160, 640000);
|
| + TestVideoSender(&sender, 10000, 750, 160, 640000);
|
|
|
| // Increase the bitrate to the initial bitrate and verify that the output is
|
| // the same.
|
| @@ -1021,7 +1028,7 @@ TEST(BweTestFramework_AdaptiveVideoSenderTest, Paced_FeedbackChangesBitrate) {
|
| packets.push_back(feedback);
|
| sender.RunFor(10000, &packets);
|
| ASSERT_EQ(512000u, source.bits_per_second());
|
| - TestVideoSender(&sender, 9998, 750, 160, 640000);
|
| + TestVideoSender(&sender, 10000, 750, 160, 640000);
|
|
|
| // Increase the bitrate to the initial bitrate and verify that the output is
|
| // the same.
|
|
|