OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 CastTransportSender* const transport_sender) | 121 CastTransportSender* const transport_sender) |
122 : VideoSender(cast_environment, | 122 : VideoSender(cast_environment, |
123 video_config, | 123 video_config, |
124 initialization_cb, | 124 initialization_cb, |
125 create_vea_cb, | 125 create_vea_cb, |
126 create_video_encode_mem_cb, | 126 create_video_encode_mem_cb, |
127 transport_sender, | 127 transport_sender, |
128 base::Bind(&IgnorePlayoutDelayChanges)) {} | 128 base::Bind(&IgnorePlayoutDelayChanges)) {} |
129 using VideoSender::OnReceivedCastFeedback; | 129 using VideoSender::OnReceivedCastFeedback; |
130 }; | 130 }; |
| 131 |
| 132 void CreateFrameAndMemsetPlane(VideoFrameFactory* const video_frame_factory) { |
| 133 auto video_frame = video_frame_factory->CreateFrame(base::TimeDelta()); |
| 134 ASSERT_TRUE(video_frame.get()); |
| 135 EXPECT_EQ(VideoFrame::I420, video_frame->format()); |
| 136 auto size = video_frame->coded_size(); |
| 137 EXPECT_EQ(kWidth, size.width()); |
| 138 EXPECT_EQ(kHeight, size.height()); |
| 139 memset(video_frame->data(VideoFrame::kYPlane), |
| 140 0xfe, |
| 141 video_frame->rows(VideoFrame::kYPlane) * |
| 142 video_frame->stride(VideoFrame::kYPlane)); |
| 143 } |
| 144 |
131 } // namespace | 145 } // namespace |
132 | 146 |
133 class VideoSenderTest : public ::testing::Test { | 147 class VideoSenderTest : public ::testing::Test { |
134 protected: | 148 protected: |
135 VideoSenderTest() { | 149 VideoSenderTest() { |
136 testing_clock_ = new base::SimpleTestTickClock(); | 150 testing_clock_ = new base::SimpleTestTickClock(); |
137 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); | 151 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); |
138 task_runner_ = new test::FakeSingleThreadTaskRunner(testing_clock_); | 152 task_runner_ = new test::FakeSingleThreadTaskRunner(testing_clock_); |
139 cast_environment_ = | 153 cast_environment_ = |
140 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_).Pass(), | 154 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_).Pass(), |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 RtcpCastMessage cast_feedback(1); | 543 RtcpCastMessage cast_feedback(1); |
530 cast_feedback.media_ssrc = 2; | 544 cast_feedback.media_ssrc = 2; |
531 cast_feedback.ack_frame_id = 0; | 545 cast_feedback.ack_frame_id = 0; |
532 video_sender_->OnReceivedCastFeedback(cast_feedback); | 546 video_sender_->OnReceivedCastFeedback(cast_feedback); |
533 | 547 |
534 transport_.SetPause(false); | 548 transport_.SetPause(false); |
535 RunTasks(33); | 549 RunTasks(33); |
536 EXPECT_EQ(0, transport_.number_of_rtp_packets()); | 550 EXPECT_EQ(0, transport_.number_of_rtp_packets()); |
537 } | 551 } |
538 | 552 |
| 553 TEST_F(VideoSenderTest, CheckVideoFrameFactory) { |
| 554 EXPECT_EQ(STATUS_VIDEO_INITIALIZED, InitEncoder(false, true)); |
| 555 auto video_frame_factory = video_sender_->video_frame_factory(); |
| 556 ASSERT_TRUE(video_frame_factory.get()); |
| 557 CreateFrameAndMemsetPlane(video_frame_factory.get()); |
| 558 video_sender_.reset(NULL); |
| 559 task_runner_->RunTasks(); |
| 560 CreateFrameAndMemsetPlane(video_frame_factory.get()); |
| 561 } |
| 562 |
539 } // namespace cast | 563 } // namespace cast |
540 } // namespace media | 564 } // namespace media |
OLD | NEW |