diff --git a/test/encoder_settings.cc b/test/encoder_settings.cc index 945559b4ee..cab90df8c1 100644 --- a/test/encoder_settings.cc +++ b/test/encoder_settings.cc @@ -61,6 +61,11 @@ std::vector CreateVideoStreams( ? stream.target_bitrate_bps : DefaultVideoStreamFactory::kMaxBitratePerStream[i]; target_bitrate_bps = std::min(max_bitrate_bps, target_bitrate_bps); + + // Used configured framerate if set. + if (stream.max_framerate > 0) { + stream_settings[i].max_framerate = stream.max_framerate; + } } else { max_bitrate_bps = std::min( bitrate_left_bps, DefaultVideoStreamFactory::kMaxBitratePerStream[i]); diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc index ffd3132cb8..dba1c578d1 100644 --- a/video/video_send_stream_tests.cc +++ b/video/video_send_stream_tests.cc @@ -3672,6 +3672,39 @@ TEST_P(VideoSendStreamTest, TestRequestSourceRotateVideo(true); } +TEST_P(VideoSendStreamTest, EncoderConfigMaxFramerateReportedToSource) { + static const int kMaxFps = 22; + class FpsObserver : public test::SendTest, + public test::FrameGeneratorCapturer::SinkWantsObserver { + public: + FpsObserver() : SendTest(kDefaultTimeoutMs) {} + + void OnFrameGeneratorCapturerCreated( + test::FrameGeneratorCapturer* frame_generator_capturer) override { + frame_generator_capturer->SetSinkWantsObserver(this); + } + + void OnSinkWantsChanged(rtc::VideoSinkInterface* sink, + const rtc::VideoSinkWants& wants) override { + if (wants.max_framerate_fps == kMaxFps) + observation_complete_.Set(); + } + + void ModifyVideoConfigs( + VideoSendStream::Config* send_config, + std::vector* receive_configs, + VideoEncoderConfig* encoder_config) override { + encoder_config->simulcast_layers[0].max_framerate = kMaxFps; + } + + void PerformTest() override { + EXPECT_TRUE(Wait()) << "Timed out while waiting for fps to be reported."; + } + } test; + + RunBaseTest(&test); +} + // This test verifies that overhead is removed from the bandwidth estimate by // testing that the maximum possible target payload rate is smaller than the // maximum bandwidth estimate by the overhead rate.