| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 rtc::scoped_refptr<VideoTrackInterface> video_track_; | 70 rtc::scoped_refptr<VideoTrackInterface> video_track_; |
| 71 }; | 71 }; |
| 72 | 72 |
| 73 // Test adding renderers to a video track and render to them by providing | 73 // Test adding renderers to a video track and render to them by providing |
| 74 // frames to the source. | 74 // frames to the source. |
| 75 TEST_F(VideoTrackTest, RenderVideo) { | 75 TEST_F(VideoTrackTest, RenderVideo) { |
| 76 // FakeVideoTrackRenderer register itself to |video_track_| | 76 // FakeVideoTrackRenderer register itself to |video_track_| |
| 77 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_1( | 77 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_1( |
| 78 new FakeVideoTrackRenderer(video_track_.get())); | 78 new FakeVideoTrackRenderer(video_track_.get())); |
| 79 | 79 |
| 80 cricket::VideoRenderer* renderer_input = | 80 rtc::VideoSinkInterface<cricket::VideoFrame>* renderer_input = |
| 81 video_track_->GetSource()->FrameInput(); | 81 video_track_->GetSink(); |
| 82 ASSERT_FALSE(renderer_input == NULL); | 82 ASSERT_FALSE(renderer_input == NULL); |
| 83 | 83 |
| 84 cricket::WebRtcVideoFrame frame; | 84 cricket::WebRtcVideoFrame frame; |
| 85 frame.InitToBlack(123, 123, 0); | 85 frame.InitToBlack(123, 123, 0); |
| 86 renderer_input->RenderFrame(&frame); | 86 renderer_input->OnFrame(frame); |
| 87 EXPECT_EQ(1, renderer_1->num_rendered_frames()); | 87 EXPECT_EQ(1, renderer_1->num_rendered_frames()); |
| 88 | 88 |
| 89 EXPECT_EQ(123, renderer_1->width()); | 89 EXPECT_EQ(123, renderer_1->width()); |
| 90 EXPECT_EQ(123, renderer_1->height()); | 90 EXPECT_EQ(123, renderer_1->height()); |
| 91 | 91 |
| 92 // FakeVideoTrackRenderer register itself to |video_track_| | 92 // FakeVideoTrackRenderer register itself to |video_track_| |
| 93 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2( | 93 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2( |
| 94 new FakeVideoTrackRenderer(video_track_.get())); | 94 new FakeVideoTrackRenderer(video_track_.get())); |
| 95 | 95 |
| 96 renderer_input->RenderFrame(&frame); | 96 renderer_input->OnFrame(frame); |
| 97 | 97 |
| 98 EXPECT_EQ(123, renderer_1->width()); | 98 EXPECT_EQ(123, renderer_1->width()); |
| 99 EXPECT_EQ(123, renderer_1->height()); | 99 EXPECT_EQ(123, renderer_1->height()); |
| 100 EXPECT_EQ(123, renderer_2->width()); | 100 EXPECT_EQ(123, renderer_2->width()); |
| 101 EXPECT_EQ(123, renderer_2->height()); | 101 EXPECT_EQ(123, renderer_2->height()); |
| 102 | 102 |
| 103 EXPECT_EQ(2, renderer_1->num_rendered_frames()); | 103 EXPECT_EQ(2, renderer_1->num_rendered_frames()); |
| 104 EXPECT_EQ(1, renderer_2->num_rendered_frames()); | 104 EXPECT_EQ(1, renderer_2->num_rendered_frames()); |
| 105 | 105 |
| 106 video_track_->RemoveRenderer(renderer_1.get()); | 106 video_track_->RemoveRenderer(renderer_1.get()); |
| 107 renderer_input->RenderFrame(&frame); | 107 renderer_input->OnFrame(frame); |
| 108 | 108 |
| 109 EXPECT_EQ(2, renderer_1->num_rendered_frames()); | 109 EXPECT_EQ(2, renderer_1->num_rendered_frames()); |
| 110 EXPECT_EQ(2, renderer_2->num_rendered_frames()); | 110 EXPECT_EQ(2, renderer_2->num_rendered_frames()); |
| 111 } | 111 } |
| 112 | 112 |
| 113 // Test that disabling the track results in blacked out frames. | 113 // Test that disabling the track results in blacked out frames. |
| 114 TEST_F(VideoTrackTest, DisableTrackBlackout) { | 114 TEST_F(VideoTrackTest, DisableTrackBlackout) { |
| 115 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer( | 115 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer( |
| 116 new FakeVideoTrackRenderer(video_track_.get())); | 116 new FakeVideoTrackRenderer(video_track_.get())); |
| 117 | 117 |
| 118 cricket::VideoRenderer* renderer_input = | 118 rtc::VideoSinkInterface<cricket::VideoFrame>* renderer_input = |
| 119 video_track_->GetSource()->FrameInput(); | 119 video_track_->GetSink(); |
| 120 ASSERT_FALSE(renderer_input == NULL); | 120 ASSERT_FALSE(renderer_input == NULL); |
| 121 | 121 |
| 122 cricket::WebRtcVideoFrame frame; | 122 cricket::WebRtcVideoFrame frame; |
| 123 frame.InitToBlack(100, 200, 1, 1, 0); | 123 frame.InitToBlack(100, 200, 1, 1, 0); |
| 124 // Make it not all-black | 124 // Make it not all-black |
| 125 frame.GetUPlane()[0] = 0; | 125 frame.GetUPlane()[0] = 0; |
| 126 | 126 |
| 127 renderer_input->RenderFrame(&frame); | 127 renderer_input->OnFrame(frame); |
| 128 EXPECT_EQ(1, renderer->num_rendered_frames()); | 128 EXPECT_EQ(1, renderer->num_rendered_frames()); |
| 129 EXPECT_FALSE(renderer->black_frame()); | 129 EXPECT_FALSE(renderer->black_frame()); |
| 130 EXPECT_EQ(100, renderer->width()); | 130 EXPECT_EQ(100, renderer->width()); |
| 131 EXPECT_EQ(200, renderer->height()); | 131 EXPECT_EQ(200, renderer->height()); |
| 132 | 132 |
| 133 video_track_->set_enabled(false); | 133 video_track_->set_enabled(false); |
| 134 renderer_input->RenderFrame(&frame); | 134 renderer_input->OnFrame(frame); |
| 135 EXPECT_EQ(2, renderer->num_rendered_frames()); | 135 EXPECT_EQ(2, renderer->num_rendered_frames()); |
| 136 EXPECT_TRUE(renderer->black_frame()); | 136 EXPECT_TRUE(renderer->black_frame()); |
| 137 EXPECT_EQ(100, renderer->width()); | 137 EXPECT_EQ(100, renderer->width()); |
| 138 EXPECT_EQ(200, renderer->height()); | 138 EXPECT_EQ(200, renderer->height()); |
| 139 | 139 |
| 140 video_track_->set_enabled(true); | 140 video_track_->set_enabled(true); |
| 141 renderer_input->RenderFrame(&frame); | 141 renderer_input->OnFrame(frame); |
| 142 EXPECT_EQ(3, renderer->num_rendered_frames()); | 142 EXPECT_EQ(3, renderer->num_rendered_frames()); |
| 143 EXPECT_FALSE(renderer->black_frame()); | 143 EXPECT_FALSE(renderer->black_frame()); |
| 144 EXPECT_EQ(100, renderer->width()); | 144 EXPECT_EQ(100, renderer->width()); |
| 145 EXPECT_EQ(200, renderer->height()); | 145 EXPECT_EQ(200, renderer->height()); |
| 146 } | 146 } |
| OLD | NEW |