Commit 90093f8d authored by Markus Handell's avatar Markus Handell Committed by Commit Bot

MockMediaStreamVideoSink: Provide per-frame timestamps in mocks.

This change updates the OnVideoFrame and OnEncodedVideoFrame
mock methods to provide the received timestamp.

Bug: 1048140
Change-Id: I89c4090050b59b03c57d9062d949bc34cc3351ed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2034522
Commit-Queue: Markus Handell <handellm@google.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737749}
parent 21db8599
...@@ -160,7 +160,7 @@ class MediaStreamVideoSourceTest : public testing::Test { ...@@ -160,7 +160,7 @@ class MediaStreamVideoSourceTest : public testing::Test {
MockMediaStreamVideoSink* sink) { MockMediaStreamVideoSink* sink) {
base::RunLoop run_loop; base::RunLoop run_loop;
base::OnceClosure quit_closure = run_loop.QuitClosure(); base::OnceClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(*sink, OnVideoFrame()).WillOnce([&]() { EXPECT_CALL(*sink, OnVideoFrame).WillOnce([&](base::TimeTicks) {
std::move(quit_closure).Run(); std::move(quit_closure).Run();
}); });
scoped_refptr<media::VideoFrame> frame = scoped_refptr<media::VideoFrame> frame =
...@@ -183,8 +183,8 @@ class MediaStreamVideoSourceTest : public testing::Test { ...@@ -183,8 +183,8 @@ class MediaStreamVideoSourceTest : public testing::Test {
MockMediaStreamVideoSink* sink2) { MockMediaStreamVideoSink* sink2) {
base::RunLoop run_loop; base::RunLoop run_loop;
base::OnceClosure quit_closure = run_loop.QuitClosure(); base::OnceClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(*sink1, OnVideoFrame()); EXPECT_CALL(*sink1, OnVideoFrame);
EXPECT_CALL(*sink2, OnVideoFrame()).WillOnce([&]() { EXPECT_CALL(*sink2, OnVideoFrame).WillOnce([&](base::TimeTicks) {
std::move(quit_closure).Run(); std::move(quit_closure).Run();
}); });
scoped_refptr<media::VideoFrame> frame = scoped_refptr<media::VideoFrame> frame =
......
...@@ -61,7 +61,7 @@ class MediaStreamVideoTrackTest ...@@ -61,7 +61,7 @@ class MediaStreamVideoTrackTest
MockMediaStreamVideoSink* sink) { MockMediaStreamVideoSink* sink) {
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(*sink, OnVideoFrame()) EXPECT_CALL(*sink, OnVideoFrame)
.WillOnce(RunClosure(std::move(quit_closure))); .WillOnce(RunClosure(std::move(quit_closure)));
mock_source()->DeliverVideoFrame(std::move(frame)); mock_source()->DeliverVideoFrame(std::move(frame));
run_loop.Run(); run_loop.Run();
...@@ -71,9 +71,9 @@ class MediaStreamVideoTrackTest ...@@ -71,9 +71,9 @@ class MediaStreamVideoTrackTest
MockMediaStreamVideoSink* sink) { MockMediaStreamVideoSink* sink) {
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(*sink, OnEncodedVideoFrame).WillOnce(Invoke([&] { EXPECT_CALL(*sink, OnEncodedVideoFrame)
std::move(quit_closure).Run(); .WillOnce(
})); Invoke([&](base::TimeTicks) { std::move(quit_closure).Run(); }));
mock_source()->DeliverEncodedVideoFrame(frame); mock_source()->DeliverEncodedVideoFrame(frame);
run_loop.Run(); run_loop.Run();
} }
...@@ -324,8 +324,7 @@ TEST_F(MediaStreamVideoTrackTest, CheckTrackRequestsFrame) { ...@@ -324,8 +324,7 @@ TEST_F(MediaStreamVideoTrackTest, CheckTrackRequestsFrame) {
MockMediaStreamVideoSink sink; MockMediaStreamVideoSink sink;
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(std::move(quit_closure)));
.WillOnce(RunClosure(std::move(quit_closure)));
sink.ConnectToTrack(track); sink.ConnectToTrack(track);
run_loop.Run(); run_loop.Run();
EXPECT_EQ(1, sink.number_of_frames()); EXPECT_EQ(1, sink.number_of_frames());
...@@ -471,7 +470,7 @@ TEST_F(MediaStreamVideoTrackEncodedTest, TransferOneEncodedVideoFrame) { ...@@ -471,7 +470,7 @@ TEST_F(MediaStreamVideoTrackEncodedTest, TransferOneEncodedVideoFrame) {
sink.ConnectEncodedToTrack(track); sink.ConnectEncodedToTrack(track);
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(sink, OnEncodedVideoFrame).WillOnce(Invoke([&] { EXPECT_CALL(sink, OnEncodedVideoFrame).WillOnce(Invoke([&](base::TimeTicks) {
std::move(quit_closure).Run(); std::move(quit_closure).Run();
})); }));
mock_source()->DeliverEncodedVideoFrame( mock_source()->DeliverEncodedVideoFrame(
......
...@@ -37,13 +37,13 @@ void MockMediaStreamVideoSink::DeliverVideoFrame( ...@@ -37,13 +37,13 @@ void MockMediaStreamVideoSink::DeliverVideoFrame(
format_ = frame->format(); format_ = frame->format();
frame_size_ = frame->natural_size(); frame_size_ = frame->natural_size();
last_frame_ = std::move(frame); last_frame_ = std::move(frame);
OnVideoFrame(); OnVideoFrame(estimated_capture_time);
} }
void MockMediaStreamVideoSink::DeliverEncodedVideoFrame( void MockMediaStreamVideoSink::DeliverEncodedVideoFrame(
scoped_refptr<EncodedVideoFrame> frame, scoped_refptr<EncodedVideoFrame> frame,
base::TimeTicks estimated_capture_time) { base::TimeTicks estimated_capture_time) {
OnEncodedVideoFrame(); OnEncodedVideoFrame(estimated_capture_time);
} }
void MockMediaStreamVideoSink::OnReadyStateChanged( void MockMediaStreamVideoSink::OnReadyStateChanged(
......
...@@ -43,8 +43,8 @@ class MockMediaStreamVideoSink : public MediaStreamVideoSink { ...@@ -43,8 +43,8 @@ class MockMediaStreamVideoSink : public MediaStreamVideoSink {
// Triggered when OnVideoFrame(scoped_refptr<media::VideoFrame> frame) // Triggered when OnVideoFrame(scoped_refptr<media::VideoFrame> frame)
// is called. // is called.
MOCK_METHOD0(OnVideoFrame, void()); MOCK_METHOD1(OnVideoFrame, void(base::TimeTicks));
MOCK_METHOD0(OnEncodedVideoFrame, void()); MOCK_METHOD1(OnEncodedVideoFrame, void(base::TimeTicks));
VideoCaptureDeliverFrameCB GetDeliverFrameCB(); VideoCaptureDeliverFrameCB GetDeliverFrameCB();
EncodedVideoFrameCB GetDeliverEncodedVideoFrameCB(); EncodedVideoFrameCB GetDeliverEncodedVideoFrameCB();
......
...@@ -186,8 +186,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, StartTrack) { ...@@ -186,8 +186,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, StartTrack) {
track->AddSink(&sink, sink.GetDeliverFrameCB(), false); track->AddSink(&sink, sink.GetDeliverFrameCB(), false);
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(std::move(quit_closure)));
.WillOnce(RunClosure(std::move(quit_closure)));
rtc::scoped_refptr<webrtc::I420Buffer> buffer( rtc::scoped_refptr<webrtc::I420Buffer> buffer(
new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240)); new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240));
...@@ -252,8 +251,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, PreservesColorSpace) { ...@@ -252,8 +251,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, PreservesColorSpace) {
track->AddSink(&sink, sink.GetDeliverFrameCB(), false); track->AddSink(&sink, sink.GetDeliverFrameCB(), false);
base::RunLoop run_loop; base::RunLoop run_loop;
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(run_loop.QuitClosure()));
.WillOnce(RunClosure(run_loop.QuitClosure()));
rtc::scoped_refptr<webrtc::I420Buffer> buffer( rtc::scoped_refptr<webrtc::I420Buffer> buffer(
new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240)); new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240));
webrtc::ColorSpace kColorSpace(webrtc::ColorSpace::PrimaryID::kSMPTE240M, webrtc::ColorSpace kColorSpace(webrtc::ColorSpace::PrimaryID::kSMPTE240M,
...@@ -301,8 +299,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, ...@@ -301,8 +299,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest,
track->AddSink(&sink, sink.GetDeliverFrameCB(), false); track->AddSink(&sink, sink.GetDeliverFrameCB(), false);
base::RunLoop run_loop; base::RunLoop run_loop;
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(run_loop.QuitClosure()));
.WillOnce(RunClosure(run_loop.QuitClosure()));
rtc::scoped_refptr<webrtc::I420Buffer> buffer( rtc::scoped_refptr<webrtc::I420Buffer> buffer(
new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240)); new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240));
...@@ -367,8 +364,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, MAYBE_ReferenceTimeEqualsTimestampUs) { ...@@ -367,8 +364,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, MAYBE_ReferenceTimeEqualsTimestampUs) {
track->AddSink(&sink, sink.GetDeliverFrameCB(), false); track->AddSink(&sink, sink.GetDeliverFrameCB(), false);
base::RunLoop run_loop; base::RunLoop run_loop;
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(run_loop.QuitClosure()));
.WillOnce(RunClosure(run_loop.QuitClosure()));
rtc::scoped_refptr<webrtc::I420Buffer> buffer( rtc::scoped_refptr<webrtc::I420Buffer> buffer(
new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240)); new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240));
...@@ -403,8 +399,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, NoTimestampUsMeansNoReferenceTime) { ...@@ -403,8 +399,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, NoTimestampUsMeansNoReferenceTime) {
track->AddSink(&sink, sink.GetDeliverFrameCB(), false); track->AddSink(&sink, sink.GetDeliverFrameCB(), false);
base::RunLoop run_loop; base::RunLoop run_loop;
EXPECT_CALL(sink, OnVideoFrame()) EXPECT_CALL(sink, OnVideoFrame).WillOnce(RunClosure(run_loop.QuitClosure()));
.WillOnce(RunClosure(run_loop.QuitClosure()));
rtc::scoped_refptr<webrtc::I420Buffer> buffer( rtc::scoped_refptr<webrtc::I420Buffer> buffer(
new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240)); new rtc::RefCountedObject<webrtc::I420Buffer>(320, 240));
...@@ -452,7 +447,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, ForwardsEncodedVideoFrames) { ...@@ -452,7 +447,7 @@ TEST_F(MediaStreamRemoteVideoSourceTest, ForwardsEncodedVideoFrames) {
track->AddEncodedSink(&sink, sink.GetDeliverEncodedVideoFrameCB()); track->AddEncodedSink(&sink, sink.GetDeliverEncodedVideoFrameCB());
base::RunLoop run_loop; base::RunLoop run_loop;
base::RepeatingClosure quit_closure = run_loop.QuitClosure(); base::RepeatingClosure quit_closure = run_loop.QuitClosure();
EXPECT_CALL(sink, OnEncodedVideoFrame()) EXPECT_CALL(sink, OnEncodedVideoFrame)
.WillOnce(RunClosure(std::move(quit_closure))); .WillOnce(RunClosure(std::move(quit_closure)));
source()->EncodedSinkInterfaceForTesting()->OnFrame(TestEncodedVideoFrame()); source()->EncodedSinkInterfaceForTesting()->OnFrame(TestEncodedVideoFrame());
run_loop.Run(); run_loop.Run();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment