Index: content/renderer/media/media_stream_video_renderer_sink_unittest.cc |
diff --git a/content/renderer/media/media_stream_video_renderer_sink_unittest.cc b/content/renderer/media/media_stream_video_renderer_sink_unittest.cc |
index 32b23e39ab5bfc033eb8746a236fa552e2f7a688..77edaf85ce1fbcded1e82f9621976cb40f78f880 100644 |
--- a/content/renderer/media/media_stream_video_renderer_sink_unittest.cc |
+++ b/content/renderer/media/media_stream_video_renderer_sink_unittest.cc |
@@ -39,12 +39,11 @@ class MediaStreamVideoRendererSinkTest : public testing::Test { |
registry_.AddVideoTrack(kTestVideoTrackId); |
// Extract the Blink Video Track for the MSVRSink. |
- blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
- registry_.test_stream().videoTracks(video_tracks); |
- EXPECT_EQ(1u, video_tracks.size()); |
+ registry_.test_stream().videoTracks(video_tracks_); |
+ EXPECT_EQ(1u, video_tracks_.size()); |
media_stream_video_renderer_sink_ = new MediaStreamVideoRendererSink( |
- video_tracks[0], |
+ video_tracks_[0], |
base::Bind(&MediaStreamVideoRendererSinkTest::ErrorCallback, |
base::Unretained(this)), |
base::Bind(&MediaStreamVideoRendererSinkTest::RepaintCallback, |
@@ -91,6 +90,8 @@ class MediaStreamVideoRendererSinkTest : public testing::Test { |
// and Sources in |registry_| into believing they are on the right threads. |
base::MessageLoopForUI message_loop_; |
const ChildProcess child_process_; |
+ |
+ blink::WebVector<blink::WebMediaStreamTrack> video_tracks_; |
MockMediaStreamRegistry registry_; |
private: |
@@ -158,4 +159,40 @@ TEST_F(MediaStreamVideoRendererSinkAsyncAddFrameReadyTest, |
media_stream_video_renderer_sink_->Stop(); |
} |
+class MediaStreamVideoRendererSinkTransparencyTest |
+ : public MediaStreamVideoRendererSinkTest { |
+ public: |
+ MediaStreamVideoRendererSinkTransparencyTest() { |
+ media_stream_video_renderer_sink_ = new MediaStreamVideoRendererSink( |
+ video_tracks_[0], |
+ base::Bind(&MediaStreamVideoRendererSinkTest::ErrorCallback, |
+ base::Unretained(this)), |
+ base::Bind(&MediaStreamVideoRendererSinkTransparencyTest:: |
+ VerifyTransparentFrame, |
+ base::Unretained(this)), |
+ message_loop_.task_runner(), message_loop_.task_runner().get(), |
+ nullptr /* gpu_factories */); |
+ } |
+ |
+ void VerifyTransparentFrame(const scoped_refptr<media::VideoFrame>& frame) { |
+ EXPECT_EQ(media::PIXEL_FORMAT_YV12A, frame->format()); |
+ } |
+}; |
+ |
+TEST_F(MediaStreamVideoRendererSinkTransparencyTest, |
+ SendTransparentFrame) { |
+ media_stream_video_renderer_sink_->Start(); |
+ |
+ InSequence s; |
+ const gfx::Size kSize(10, 10); |
+ const base::TimeDelta kTimestamp = base::TimeDelta(); |
+ const scoped_refptr<media::VideoFrame> video_frame = |
+ media::VideoFrame::CreateFrame(media::PIXEL_FORMAT_YV12A, kSize, |
+ gfx::Rect(kSize), kSize, kTimestamp); |
+ OnVideoFrame(video_frame); |
+ message_loop_.RunUntilIdle(); |
+ |
+ media_stream_video_renderer_sink_->Stop(); |
+} |
+ |
} // namespace content |