summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/media_stream_video_track_unittest.cc
diff options
context:
space:
mode:
authorperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-06 16:44:57 +0000
committerperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-06 16:44:57 +0000
commitae2dfa8a611aa8d7301fcc3765c24b1f5fa8c9c5 (patch)
tree185e5884ef1251849ccf192e0c5527484f4e5a98 /content/renderer/media/media_stream_video_track_unittest.cc
parent56d5525340bd1144554e47cfb5026d31fa974f56 (diff)
downloadchromium_src-ae2dfa8a611aa8d7301fcc3765c24b1f5fa8c9c5.zip
chromium_src-ae2dfa8a611aa8d7301fcc3765c24b1f5fa8c9c5.tar.gz
chromium_src-ae2dfa8a611aa8d7301fcc3765c24b1f5fa8c9c5.tar.bz2
Change a disabled MediaStreamVideoTrack to output black video frames for each incoming frame.
The frame provided to the track is unchanged. Instead a black frame with the same timestamp is created and forwarded to the sinks. Please see the bug and the discussion in https://groups.google.com/forum/#!topic/discuss-webrtc/nZWA0prohio for rational. BUG=398844 TEST= open https://apprtc.appspot.com in two tabs to create a call. Hit Ctrl-shift-e in the first tab to disable the local video track. Notice that local video is black. Open the second tab and notice that the remote video is black. Review URL: https://codereview.chromium.org/432903002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287787 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/media_stream_video_track_unittest.cc')
-rw-r--r--content/renderer/media/media_stream_video_track_unittest.cc24
1 files changed, 12 insertions, 12 deletions
diff --git a/content/renderer/media/media_stream_video_track_unittest.cc b/content/renderer/media/media_stream_video_track_unittest.cc
index 9b281a6..2571ee4 100644
--- a/content/renderer/media/media_stream_video_track_unittest.cc
+++ b/content/renderer/media/media_stream_video_track_unittest.cc
@@ -18,6 +18,9 @@
namespace content {
+const uint8 kBlackValue = 0x00;
+const uint8 kColorValue = 0xAB;
+
ACTION_P(RunClosure, closure) {
closure.Run();
}
@@ -43,9 +46,10 @@ class MediaStreamVideoTrackTest : public ::testing::Test {
EXPECT_CALL(*sink, OnVideoFrame()).WillOnce(
RunClosure(quit_closure));
scoped_refptr<media::VideoFrame> frame =
- media::VideoFrame::CreateBlackFrame(
+ media::VideoFrame::CreateColorFrame(
gfx::Size(MediaStreamVideoSource::kDefaultWidth,
- MediaStreamVideoSource::kDefaultHeight));
+ MediaStreamVideoSource::kDefaultHeight),
+ kColorValue, kColorValue, kColorValue, base::TimeDelta());
mock_source()->DeliverVideoFrame(frame);
run_loop.Run();
}
@@ -163,24 +167,20 @@ TEST_F(MediaStreamVideoTrackTest, SetEnabled) {
DeliverVideoFrameAndWaitForRenderer(&sink);
EXPECT_EQ(1, sink.number_of_frames());
+ EXPECT_EQ(kColorValue, *sink.last_frame()->data(media::VideoFrame::kYPlane));
video_track->SetEnabled(false);
EXPECT_FALSE(sink.enabled());
- scoped_refptr<media::VideoFrame> frame =
- media::VideoFrame::CreateBlackFrame(
- gfx::Size(MediaStreamVideoSource::kDefaultWidth,
- MediaStreamVideoSource::kDefaultHeight));
- mock_source()->DeliverVideoFrame(frame);
- // Wait for the IO thread to complete delivering frames.
- io_message_loop()->RunUntilIdle();
- EXPECT_EQ(1, sink.number_of_frames());
+ DeliverVideoFrameAndWaitForRenderer(&sink);
+ EXPECT_EQ(2, sink.number_of_frames());
+ EXPECT_EQ(kBlackValue, *sink.last_frame()->data(media::VideoFrame::kYPlane));
video_track->SetEnabled(true);
EXPECT_TRUE(sink.enabled());
- mock_source()->DeliverVideoFrame(frame);
DeliverVideoFrameAndWaitForRenderer(&sink);
- EXPECT_EQ(2, sink.number_of_frames());
+ EXPECT_EQ(3, sink.number_of_frames());
+ EXPECT_EQ(kColorValue, *sink.last_frame()->data(media::VideoFrame::kYPlane));
MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
}