| Index: webrtc/video/video_send_stream_tests.cc
|
| diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
|
| index de3da25385e5f463108cfde683920b7b22aea77a..97b2f6acb39bc2a4ade33fff9f587290dde6ca93 100644
|
| --- a/webrtc/video/video_send_stream_tests.cc
|
| +++ b/webrtc/video/video_send_stream_tests.cc
|
| @@ -937,10 +937,12 @@ void VideoSendStreamTest::TestPacketFragmentationSize(VideoFormat format,
|
|
|
| void TriggerLossReport(const RTPHeader& header) {
|
| // Send lossy receive reports to trigger FEC enabling.
|
| - if (packet_count_++ % 2 != 0) {
|
| - // Receive statistics reporting having lost 50% of the packets.
|
| + const int kLossPercent = 5;
|
| + if (packet_count_++ % (100 / kLossPercent) != 0) {
|
| FakeReceiveStatistics lossy_receive_stats(
|
| - kVideoSendSsrcs[0], header.sequenceNumber, packet_count_ / 2, 127);
|
| + kVideoSendSsrcs[0], header.sequenceNumber,
|
| + (packet_count_ * (100 - kLossPercent)) / 100, // Cumulative lost.
|
| + static_cast<uint8_t>((255 * kLossPercent) / 100)); // Loss percent.
|
| RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(),
|
| &lossy_receive_stats, nullptr, nullptr,
|
| transport_adapter_.get());
|
| @@ -993,6 +995,35 @@ void VideoSendStreamTest::TestPacketFragmentationSize(VideoFormat format,
|
| // Make sure there is at least one extension header, to make the RTP
|
| // header larger than the base length of 12 bytes.
|
| EXPECT_FALSE(send_config->rtp.extensions.empty());
|
| +
|
| + // Setup screen content disables frame dropping which makes this easier.
|
| + class VideoStreamFactory
|
| + : public VideoEncoderConfig::VideoStreamFactoryInterface {
|
| + public:
|
| + explicit VideoStreamFactory(size_t num_temporal_layers)
|
| + : num_temporal_layers_(num_temporal_layers) {
|
| + EXPECT_GT(num_temporal_layers, 0u);
|
| + }
|
| +
|
| + private:
|
| + std::vector<VideoStream> CreateEncoderStreams(
|
| + int width,
|
| + int height,
|
| + const VideoEncoderConfig& encoder_config) override {
|
| + std::vector<VideoStream> streams =
|
| + test::CreateVideoStreams(width, height, encoder_config);
|
| + for (VideoStream& stream : streams) {
|
| + stream.temporal_layer_thresholds_bps.resize(num_temporal_layers_ -
|
| + 1);
|
| + }
|
| + return streams;
|
| + }
|
| + const size_t num_temporal_layers_;
|
| + };
|
| +
|
| + encoder_config->video_stream_factory =
|
| + new rtc::RefCountedObject<VideoStreamFactory>(2);
|
| + encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen;
|
| }
|
|
|
| void PerformTest() override {
|
|
|