Fixing camera capture for video_loopback

In the middle of refactoring, I replaced the VideoCapturer with
FrameGeneratorCapturer, to reuse the code, and with that disabled the camera.
Now adding capturer_ element to VideoQualityTest and ignoring
frame_generator_capturer_ from the parent class test::CallTest.

Review URL: https://codereview.webrtc.org/1356933005

Cr-Commit-Position: refs/heads/master@{#10023}
This commit is contained in:
ivica
2015-09-23 01:57:06 -07:00
committed by Commit bot
parent 47ee2f3b9f
commit 2d4e6c5d9d
2 changed files with 23 additions and 15 deletions

View File

@ -694,22 +694,22 @@ void VideoQualityTest::SetupScreenshare(const Params& params) {
void VideoQualityTest::CreateCapturer(const Params& params,
VideoCaptureInput* input) {
if (params.screenshare.enabled) {
frame_generator_capturer_.reset(new test::FrameGeneratorCapturer(
clock_, input, frame_generator_.release(), params.common.fps));
EXPECT_TRUE(frame_generator_capturer_->Init());
test::FrameGeneratorCapturer *frame_generator_capturer =
new test::FrameGeneratorCapturer(
clock_, input, frame_generator_.release(), params.common.fps);
EXPECT_TRUE(frame_generator_capturer->Init());
capturer_.reset(frame_generator_capturer);
} else {
if (params.video.clip_name.empty()) {
frame_generator_capturer_.reset(test::FrameGeneratorCapturer::Create(
capturer_.reset(test::VideoCapturer::Create(
input, params.common.width, params.common.height, params.common.fps,
clock_));
EXPECT_TRUE(frame_generator_capturer_->Init());
} else {
frame_generator_capturer_.reset(
test::FrameGeneratorCapturer::CreateFromYuvFile(
capturer_.reset(test::FrameGeneratorCapturer::CreateFromYuvFile(
input, test::ResourcePath(params.video.clip_name, "yuv"),
params.common.width, params.common.height, params.common.fps,
clock_));
ASSERT_TRUE(frame_generator_capturer_.get() != nullptr)
ASSERT_TRUE(capturer_.get() != nullptr)
<< "Could not create capturer for " << params.video.clip_name
<< ".yuv. Is this resource file present?";
}
@ -762,14 +762,20 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) {
analyzer.input_ = send_stream_->Input();
analyzer.send_stream_ = send_stream_;
Start();
send_stream_->Start();
for (size_t i = 0; i < receive_streams_.size(); ++i)
receive_streams_[i]->Start();
capturer_->Start();
analyzer.Wait();
send_transport.StopSending();
recv_transport.StopSending();
Stop();
capturer_->Stop();
for (size_t i = 0; i < receive_streams_.size(); ++i)
receive_streams_[i]->Stop();
send_stream_->Stop();
DestroyStreams();
@ -816,11 +822,11 @@ void VideoQualityTest::RunWithVideoRenderer(const Params& params) {
receive_stream->Start();
send_stream_->Start();
frame_generator_capturer_->Start();
capturer_->Start();
test::PressEnterToContinue();
frame_generator_capturer_->Stop();
capturer_->Stop();
send_stream_->Stop();
receive_stream->Stop();

View File

@ -75,6 +75,8 @@ class VideoQualityTest : public test::CallTest {
newapi::Transport* recv_transport);
void SetupScreenshare(const Params& params);
// We need a more general capturer than the FrameGeneratorCapturer.
rtc::scoped_ptr<test::VideoCapturer> capturer_;
rtc::scoped_ptr<test::TraceToStderr> trace_to_stderr_;
rtc::scoped_ptr<test::FrameGenerator> frame_generator_;
rtc::scoped_ptr<VideoEncoder> encoder_;