Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: media/cast/sender/video_encoder_impl_unittest.cc

Issue 901833004: [Cast] Repurpose CastInitializationStatus for variable frame size support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compile fixes. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "media/base/video_frame.h" 10 #include "media/base/video_frame.h"
(...skipping 12 matching lines...) Expand all
23 protected: 23 protected:
24 VideoEncoderImplTest() 24 VideoEncoderImplTest()
25 : testing_clock_(new base::SimpleTestTickClock()), 25 : testing_clock_(new base::SimpleTestTickClock()),
26 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), 26 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
27 cast_environment_(new CastEnvironment( 27 cast_environment_(new CastEnvironment(
28 scoped_ptr<base::TickClock>(testing_clock_).Pass(), 28 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
29 task_runner_, 29 task_runner_,
30 task_runner_, 30 task_runner_,
31 task_runner_)), 31 task_runner_)),
32 video_config_(GetDefaultVideoSenderConfig()), 32 video_config_(GetDefaultVideoSenderConfig()),
33 operational_status_(STATUS_UNINITIALIZED),
33 count_frames_delivered_(0) { 34 count_frames_delivered_(0) {
34 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); 35 testing_clock_->Advance(base::TimeTicks::Now() - base::TimeTicks());
35 first_frame_time_ = testing_clock_->NowTicks(); 36 first_frame_time_ = testing_clock_->NowTicks();
36 } 37 }
37 38
38 ~VideoEncoderImplTest() override {} 39 ~VideoEncoderImplTest() override {}
39 40
40 void SetUp() override { 41 void SetUp() override {
41 video_config_.codec = GetParam(); 42 video_config_.codec = GetParam();
42 } 43 }
43 44
44 void TearDown() override { 45 void TearDown() override {
45 video_encoder_.reset(); 46 video_encoder_.reset();
46 task_runner_->RunTasks(); 47 task_runner_->RunTasks();
47 } 48 }
48 49
49 void CreateEncoder(bool three_buffer_mode) { 50 void CreateEncoder(bool three_buffer_mode) {
51 ASSERT_EQ(STATUS_UNINITIALIZED, operational_status_);
50 video_config_.max_number_of_video_buffers_used = 52 video_config_.max_number_of_video_buffers_used =
51 (three_buffer_mode ? 3 : 1); 53 (three_buffer_mode ? 3 : 1);
52 video_encoder_.reset(new VideoEncoderImpl( 54 video_encoder_.reset(new VideoEncoderImpl(
53 cast_environment_, 55 cast_environment_,
54 video_config_, 56 video_config_,
55 CastInitializationCallback())); 57 base::Bind(&VideoEncoderImplTest::OnOperationalStatusChange,
58 base::Unretained(this))));
56 task_runner_->RunTasks(); 59 task_runner_->RunTasks();
60 ASSERT_EQ(STATUS_INITIALIZED, operational_status_);
57 } 61 }
58 62
59 VideoEncoder* video_encoder() const { 63 VideoEncoder* video_encoder() const {
60 return video_encoder_.get(); 64 return video_encoder_.get();
61 } 65 }
62 66
63 void AdvanceClock() { 67 void AdvanceClock() {
64 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(33)); 68 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(33));
65 } 69 }
66 70
(...skipping 29 matching lines...) Expand all
96 const gfx::Size& size) const { 100 const gfx::Size& size) const {
97 const scoped_refptr<media::VideoFrame> frame = 101 const scoped_refptr<media::VideoFrame> frame =
98 media::VideoFrame::CreateFrame( 102 media::VideoFrame::CreateFrame(
99 VideoFrame::I420, size, gfx::Rect(size), size, 103 VideoFrame::I420, size, gfx::Rect(size), size,
100 testing_clock_->NowTicks() - first_frame_time_); 104 testing_clock_->NowTicks() - first_frame_time_);
101 PopulateVideoFrame(frame.get(), 123); 105 PopulateVideoFrame(frame.get(), 123);
102 return frame; 106 return frame;
103 } 107 }
104 108
105 private: 109 private:
110 void OnOperationalStatusChange(OperationalStatus status) {
111 operational_status_ = status;
112 }
113
106 // Checks that |encoded_frame| matches expected values. This is the method 114 // Checks that |encoded_frame| matches expected values. This is the method
107 // bound in the callback returned from CreateFrameDeliverCallback(). 115 // bound in the callback returned from CreateFrameDeliverCallback().
108 void DeliverEncodedVideoFrame( 116 void DeliverEncodedVideoFrame(
109 uint32 expected_frame_id, 117 uint32 expected_frame_id,
110 uint32 expected_last_referenced_frame_id, 118 uint32 expected_last_referenced_frame_id,
111 uint32 expected_rtp_timestamp, 119 uint32 expected_rtp_timestamp,
112 const base::TimeTicks& expected_reference_time, 120 const base::TimeTicks& expected_reference_time,
113 scoped_ptr<EncodedFrame> encoded_frame) { 121 scoped_ptr<EncodedFrame> encoded_frame) {
114 if (expected_frame_id != expected_last_referenced_frame_id) { 122 if (expected_frame_id != expected_last_referenced_frame_id) {
115 EXPECT_EQ(EncodedFrame::DEPENDENT, encoded_frame->dependency); 123 EXPECT_EQ(EncodedFrame::DEPENDENT, encoded_frame->dependency);
116 } else if (video_config_.max_number_of_video_buffers_used == 1) { 124 } else if (video_config_.max_number_of_video_buffers_used == 1) {
117 EXPECT_EQ(EncodedFrame::KEY, encoded_frame->dependency); 125 EXPECT_EQ(EncodedFrame::KEY, encoded_frame->dependency);
118 } 126 }
119 EXPECT_EQ(expected_frame_id, encoded_frame->frame_id); 127 EXPECT_EQ(expected_frame_id, encoded_frame->frame_id);
120 EXPECT_EQ(expected_last_referenced_frame_id, 128 EXPECT_EQ(expected_last_referenced_frame_id,
121 encoded_frame->referenced_frame_id) 129 encoded_frame->referenced_frame_id)
122 << "frame id: " << expected_frame_id; 130 << "frame id: " << expected_frame_id;
123 EXPECT_EQ(expected_rtp_timestamp, encoded_frame->rtp_timestamp); 131 EXPECT_EQ(expected_rtp_timestamp, encoded_frame->rtp_timestamp);
124 EXPECT_EQ(expected_reference_time, encoded_frame->reference_time); 132 EXPECT_EQ(expected_reference_time, encoded_frame->reference_time);
125 EXPECT_FALSE(encoded_frame->data.empty()); 133 EXPECT_FALSE(encoded_frame->data.empty());
126 ++count_frames_delivered_; 134 ++count_frames_delivered_;
127 } 135 }
128 136
129 base::SimpleTestTickClock* const testing_clock_; // Owned by CastEnvironment. 137 base::SimpleTestTickClock* const testing_clock_; // Owned by CastEnvironment.
130 const scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 138 const scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
131 const scoped_refptr<CastEnvironment> cast_environment_; 139 const scoped_refptr<CastEnvironment> cast_environment_;
132 VideoSenderConfig video_config_; 140 VideoSenderConfig video_config_;
133 base::TimeTicks first_frame_time_; 141 base::TimeTicks first_frame_time_;
142 OperationalStatus operational_status_;
134 scoped_ptr<VideoEncoder> video_encoder_; 143 scoped_ptr<VideoEncoder> video_encoder_;
135 144
136 int count_frames_delivered_; 145 int count_frames_delivered_;
137 146
138 DISALLOW_COPY_AND_ASSIGN(VideoEncoderImplTest); 147 DISALLOW_COPY_AND_ASSIGN(VideoEncoderImplTest);
139 }; 148 };
140 149
141 // A simple test to encode ten frames of video, expecting to see one key frame 150 // A simple test to encode ten frames of video, expecting to see one key frame
142 // followed by nine delta frames. 151 // followed by nine delta frames.
143 TEST_P(VideoEncoderImplTest, GeneratesKeyFrameThenOnlyDeltaFrames) { 152 TEST_P(VideoEncoderImplTest, GeneratesKeyFrameThenOnlyDeltaFrames) {
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 304
296 EXPECT_EQ(static_cast<int>(frame_id), count_frames_delivered()); 305 EXPECT_EQ(static_cast<int>(frame_id), count_frames_delivered());
297 } 306 }
298 307
299 INSTANTIATE_TEST_CASE_P(, 308 INSTANTIATE_TEST_CASE_P(,
300 VideoEncoderImplTest, 309 VideoEncoderImplTest,
301 ::testing::Values(CODEC_VIDEO_FAKE, CODEC_VIDEO_VP8)); 310 ::testing::Values(CODEC_VIDEO_FAKE, CODEC_VIDEO_VP8));
302 311
303 } // namespace cast 312 } // namespace cast
304 } // namespace media 313 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698