Revert "FrameGeneratorCapturer: don't generate video before Start is called"

This reverts commit 00a8576a67c9e37de52a9d0c18042b4d4fd339a2.

Reason for revert: Speculative rollback (performance metrics change)

Original change's description:
> FrameGeneratorCapturer: don't generate video before Start is called
>
> Bug: b/272350185
> Change-Id: I3c264df49e952c8f852feb08607b8d4e320b15fb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309860
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#40336}

Bug: b/272350185, b/288515909
Change-Id: I66fc61d5d4d1c17f46f1f5b4fc6ff64a9b2012f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310681
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40372}
This commit is contained in:
Mirko Bonadei 2023-06-28 18:24:10 +00:00 committed by WebRTC LUCI CQ
parent 7e4b2a5265
commit 2d7ccb4149
12 changed files with 6 additions and 27 deletions

View File

@ -186,7 +186,6 @@ class BitrateEstimatorTest : public test::CallTest {
test::VideoTestConstants::kDefaultFramerate,
*test->task_queue_factory_);
frame_generator_capturer_->Init();
frame_generator_capturer_->Start();
send_stream_->SetSource(frame_generator_capturer_.get(),
DegradationPreference::MAINTAIN_FRAMERATE);
send_stream_->Start();

View File

@ -237,7 +237,6 @@ TEST_F(PeerConnectionFieldTrialTest, ApplyFakeNetworkConfig) {
auto video_track_source =
rtc::make_ref_counted<FrameGeneratorCapturerVideoTrackSource>(
config, clock_, /*is_screencast=*/false);
video_track_source->Start();
caller->AddTrack(pc_factory_->CreateVideoTrack(video_track_source, "v"));
WrapperPtr callee = CreatePeerConnection();

View File

@ -64,15 +64,9 @@ class FrameGeneratorCapturerVideoTrackSource : public VideoTrackSource {
~FrameGeneratorCapturerVideoTrackSource() = default;
void Start() {
SetState(kLive);
video_capturer_->Start();
}
void Start() { SetState(kLive); }
void Stop() {
SetState(kMuted);
video_capturer_->Stop();
}
void Stop() { SetState(kMuted); }
bool is_screencast() const override { return is_screencast_; }

View File

@ -1260,7 +1260,6 @@ if (!build_with_chromium) {
":run_loop",
":scoped_key_value_config",
":test_support",
":test_video_capturer",
":video_test_common",
":video_test_constants",
"../api:array_view",

View File

@ -634,14 +634,7 @@ void CallTest::Start() {
audio_recv_stream->Start();
}
void CallTest::StartVideoSources() {
for (size_t i = 0; i < video_sources_.size(); ++i) {
video_sources_[i]->Start();
}
}
void CallTest::StartVideoStreams() {
StartVideoSources();
for (size_t i = 0; i < video_send_streams_.size(); ++i) {
std::vector<bool> active_rtp_streams(
video_send_configs_[i].rtp.ssrcs.size(), true);

View File

@ -36,7 +36,6 @@
#include "test/rtp_rtcp_observer.h"
#include "test/run_loop.h"
#include "test/scoped_key_value_config.h"
#include "test/test_video_capturer.h"
#include "test/video_test_constants.h"
namespace webrtc {
@ -163,7 +162,6 @@ class CallTest : public ::testing::Test, public RtpPacketSinkInterface {
void ConnectVideoSourcesToStreams();
void Start();
void StartVideoSources();
void StartVideoStreams();
void Stop();
void StopVideoStreams();
@ -212,7 +210,8 @@ class CallTest : public ::testing::Test, public RtpPacketSinkInterface {
std::vector<FlexfecReceiveStream*> flexfec_receive_streams_;
test::FrameGeneratorCapturer* frame_generator_capturer_;
std::vector<std::unique_ptr<TestVideoCapturer>> video_sources_;
std::vector<std::unique_ptr<rtc::VideoSourceInterface<VideoFrame>>>
video_sources_;
DegradationPreference degradation_preference_ =
DegradationPreference::MAINTAIN_FRAMERATE;

View File

@ -43,7 +43,7 @@ FrameGeneratorCapturer::FrameGeneratorCapturer(
int target_fps,
TaskQueueFactory& task_queue_factory)
: clock_(clock),
sending_(false),
sending_(true),
sink_wants_observer_(nullptr),
frame_generator_(std::move(frame_generator)),
source_fps_(target_fps),

View File

@ -129,7 +129,7 @@ TEST_F(PeerConnectionE2EQualityTestTest, OutputVideoIsDumpedWhenRequested) {
auto frame_reader = test::CreateY4mFrameReader(
test::JoinFilename(test_directory_, "alice_video_bob_320x180_15.y4m"));
EXPECT_THAT(frame_reader->num_frames(), Eq(30)); // 2 seconds 15 fps
EXPECT_THAT(frame_reader->num_frames(), Eq(31)); // 2 seconds 15 fps + 1
ExpectOutputFilesCount(1);
}

View File

@ -338,7 +338,6 @@ PeerScenarioClient::VideoSendTrack PeerScenarioClient::CreateVideo(
capturer->Init();
res.source = rtc::make_ref_counted<FrameGeneratorCapturerVideoTrackSource>(
std::move(capturer), config.screencast);
res.source->Start();
auto track = pc_factory_->CreateVideoTrack(res.source, track_id);
res.track = track.get();
res.sender =

View File

@ -419,7 +419,6 @@ SendVideoStream::SendVideoStream(CallClient* sender,
send_config.suspend_below_min_bitrate =
config.encoder.suspend_below_min_bitrate;
video_capturer_->Start();
sender_->SendTask([&] {
if (config.stream.fec_controller_factory) {
send_stream_ = sender_->call_->CreateVideoSendStream(

View File

@ -254,7 +254,6 @@ void MultiCodecReceiveTest::RunTestWithCodecs(
GetVideoSendStream()->Start();
CreateFrameGeneratorCapturer(kFps, kWidth / 2, kHeight / 2);
ConnectVideoSourcesToStreams();
StartVideoSources();
});
EXPECT_TRUE(observer_.Wait()) << "Timed out waiting for frames.";
}

View File

@ -339,7 +339,6 @@ void RtpRtcpEndToEndTest::TestRtpStatePreservation(
->SendRtcp(packet.data(), packet.size());
}
CreateFrameGeneratorCapturer(30, 1280, 720);
StartVideoSources();
});
observer.ResetExpectedSsrcs(1);