diff options
author | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-06 16:44:57 +0000 |
---|---|---|
committer | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-06 16:44:57 +0000 |
commit | ae2dfa8a611aa8d7301fcc3765c24b1f5fa8c9c5 (patch) | |
tree | 185e5884ef1251849ccf192e0c5527484f4e5a98 /content/renderer/media/media_stream_video_track_unittest.cc | |
parent | 56d5525340bd1144554e47cfb5026d31fa974f56 (diff) | |
download | chromium_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.cc | 24 |
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); } |