Refactor VideoTrackTest to not depend on cricket::VideoCapturer
Bug: webrtc:6353
Change-Id: Ie0c9d22e1339aa7ff1e02fe26ca796a299410cf1
Reviewed-on: https://webrtc-review.googlesource.com/c/118420
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26330}
diff --git a/pc/video_track_unittest.cc b/pc/video_track_unittest.cc
index 806da7c..c9f9bcb 100644
--- a/pc/video_track_unittest.cc
+++ b/pc/video_track_unittest.cc
@@ -10,47 +10,37 @@
#include <memory>
-#include "media/base/fake_video_capturer.h"
+#include "media/base/fake_frame_source.h"
#include "media/base/video_common.h"
#include "pc/test/fake_video_track_renderer.h"
+#include "pc/test/fake_video_track_source.h"
#include "pc/video_track.h"
#include "pc/video_track_source.h"
#include "rtc_base/ref_counted_object.h"
#include "test/gtest.h"
using webrtc::FakeVideoTrackRenderer;
+using webrtc::FakeVideoTrackSource;
using webrtc::MediaSourceInterface;
using webrtc::MediaStreamTrackInterface;
-using webrtc::VideoTrackSource;
using webrtc::VideoTrack;
using webrtc::VideoTrackInterface;
+using webrtc::VideoTrackSource;
-class TestVideoTrackSource : public VideoTrackSource {
- public:
- TestVideoTrackSource() : VideoTrackSource(true /* remote */) {}
- rtc::VideoSourceInterface<webrtc::VideoFrame>* source() override {
- return &capturer_;
- }
- cricket::FakeVideoCapturerWithTaskQueue* capturer() { return &capturer_; }
-
- private:
- cricket::FakeVideoCapturerWithTaskQueue capturer_;
-};
class VideoTrackTest : public testing::Test {
public:
- VideoTrackTest() {
+ VideoTrackTest() : frame_source_(640, 480, rtc::kNumMicrosecsPerSec / 30) {
static const char kVideoTrackId[] = "track_id";
- video_track_source_ = new rtc::RefCountedObject<TestVideoTrackSource>();
+ video_track_source_ = new rtc::RefCountedObject<FakeVideoTrackSource>(
+ /*is_screencast=*/false);
video_track_ = VideoTrack::Create(kVideoTrackId, video_track_source_,
rtc::Thread::Current());
- video_track_source_->capturer()->Start(
- cricket::VideoFormat(640, 480, cricket::VideoFormat::FpsToInterval(30),
- cricket::FOURCC_I420));
}
protected:
- rtc::scoped_refptr<TestVideoTrackSource> video_track_source_;
+ rtc::scoped_refptr<FakeVideoTrackSource> video_track_source_;
rtc::scoped_refptr<VideoTrackInterface> video_track_;
+ cricket::FakeFrameSource frame_source_;
};
// Test changing the source state also changes the track state.
@@ -67,18 +57,18 @@
std::unique_ptr<FakeVideoTrackRenderer> renderer_1(
new FakeVideoTrackRenderer(video_track_.get()));
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(1, renderer_1->num_rendered_frames());
// FakeVideoTrackRenderer register itself to |video_track_|
std::unique_ptr<FakeVideoTrackRenderer> renderer_2(
new FakeVideoTrackRenderer(video_track_.get()));
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(2, renderer_1->num_rendered_frames());
EXPECT_EQ(1, renderer_2->num_rendered_frames());
renderer_1.reset(nullptr);
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(2, renderer_2->num_rendered_frames());
}
@@ -87,17 +77,17 @@
std::unique_ptr<FakeVideoTrackRenderer> renderer(
new FakeVideoTrackRenderer(video_track_.get()));
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(1, renderer->num_rendered_frames());
EXPECT_FALSE(renderer->black_frame());
video_track_->set_enabled(false);
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(2, renderer->num_rendered_frames());
EXPECT_TRUE(renderer->black_frame());
video_track_->set_enabled(true);
- video_track_source_->capturer()->CaptureFrame();
+ video_track_source_->InjectFrame(frame_source_.GetFrame());
EXPECT_EQ(3, renderer->num_rendered_frames());
EXPECT_FALSE(renderer->black_frame());
}