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

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

Issue 906403006: [Cast] Size-Adaptable platform video encoders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed hubbe's comments. 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 <queue> 5 #include <queue>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/test/launcher/unit_test_launcher.h" 10 #include "base/test/launcher/unit_test_launcher.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 virtual ~EndToEndFrameChecker() {} 169 virtual ~EndToEndFrameChecker() {}
170 170
171 FFmpegVideoDecoder decoder_; 171 FFmpegVideoDecoder decoder_;
172 std::queue<scoped_refptr<VideoFrame>> expectations_; 172 std::queue<scoped_refptr<VideoFrame>> expectations_;
173 int count_frames_checked_; 173 int count_frames_checked_;
174 174
175 DISALLOW_COPY_AND_ASSIGN(EndToEndFrameChecker); 175 DISALLOW_COPY_AND_ASSIGN(EndToEndFrameChecker);
176 }; 176 };
177 177
178 void CreateFrameAndMemsetPlane(VideoFrameFactory* const video_frame_factory) { 178 void CreateFrameAndMemsetPlane(VideoFrameFactory* const video_frame_factory) {
179 auto video_frame = video_frame_factory->CreateFrame(base::TimeDelta()); 179 const scoped_refptr<media::VideoFrame> video_frame =
180 video_frame_factory->MaybeCreateFrame(
181 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta());
180 ASSERT_TRUE(video_frame.get()); 182 ASSERT_TRUE(video_frame.get());
181 auto cv_pixel_buffer = video_frame->cv_pixel_buffer(); 183 auto cv_pixel_buffer = video_frame->cv_pixel_buffer();
182 ASSERT_TRUE(cv_pixel_buffer); 184 ASSERT_TRUE(cv_pixel_buffer);
183 CVPixelBufferLockBaseAddress(cv_pixel_buffer, 0); 185 CVPixelBufferLockBaseAddress(cv_pixel_buffer, 0);
184 auto ptr = CVPixelBufferGetBaseAddressOfPlane(cv_pixel_buffer, 0); 186 auto ptr = CVPixelBufferGetBaseAddressOfPlane(cv_pixel_buffer, 0);
185 ASSERT_TRUE(ptr); 187 ASSERT_TRUE(ptr);
186 memset(ptr, 0xfe, CVPixelBufferGetBytesPerRowOfPlane(cv_pixel_buffer, 0) * 188 memset(ptr, 0xfe, CVPixelBufferGetBytesPerRowOfPlane(cv_pixel_buffer, 0) *
187 CVPixelBufferGetHeightOfPlane(cv_pixel_buffer, 0)); 189 CVPixelBufferGetHeightOfPlane(cv_pixel_buffer, 0));
188 CVPixelBufferUnlockBaseAddress(cv_pixel_buffer, 0); 190 CVPixelBufferUnlockBaseAddress(cv_pixel_buffer, 0);
189 } 191 }
(...skipping 10 matching lines...) Expand all
200 clock_->Advance(base::TimeTicks::Now() - base::TimeTicks()); 202 clock_->Advance(base::TimeTicks::Now() - base::TimeTicks());
201 203
202 cast_environment_ = new CastEnvironment( 204 cast_environment_ = new CastEnvironment(
203 scoped_ptr<base::TickClock>(clock_).Pass(), 205 scoped_ptr<base::TickClock>(clock_).Pass(),
204 message_loop_.message_loop_proxy(), message_loop_.message_loop_proxy(), 206 message_loop_.message_loop_proxy(), message_loop_.message_loop_proxy(),
205 message_loop_.message_loop_proxy()); 207 message_loop_.message_loop_proxy());
206 encoder_.reset(new H264VideoToolboxEncoder( 208 encoder_.reset(new H264VideoToolboxEncoder(
207 cast_environment_, 209 cast_environment_,
208 video_sender_config_, 210 video_sender_config_,
209 gfx::Size(kVideoWidth, kVideoHeight), 211 gfx::Size(kVideoWidth, kVideoHeight),
212 0u,
210 base::Bind(&SaveOperationalStatus, &operational_status_))); 213 base::Bind(&SaveOperationalStatus, &operational_status_)));
211 message_loop_.RunUntilIdle(); 214 message_loop_.RunUntilIdle();
212 EXPECT_EQ(STATUS_INITIALIZED, operational_status_); 215 EXPECT_EQ(STATUS_INITIALIZED, operational_status_);
213 } 216 }
214 217
215 void TearDown() override { 218 void TearDown() override {
216 encoder_.reset(); 219 encoder_.reset();
217 message_loop_.RunUntilIdle(); 220 message_loop_.RunUntilIdle();
218 } 221 }
219 222
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 message_loop_.RunUntilIdle(); 300 message_loop_.RunUntilIdle();
298 301
299 EXPECT_EQ(5, checker->count_frames_checked()); 302 EXPECT_EQ(5, checker->count_frames_checked());
300 } 303 }
301 #endif 304 #endif
302 305
303 TEST_F(H264VideoToolboxEncoderTest, CheckVideoFrameFactory) { 306 TEST_F(H264VideoToolboxEncoderTest, CheckVideoFrameFactory) {
304 auto video_frame_factory = encoder_->CreateVideoFrameFactory(); 307 auto video_frame_factory = encoder_->CreateVideoFrameFactory();
305 ASSERT_TRUE(video_frame_factory.get()); 308 ASSERT_TRUE(video_frame_factory.get());
306 CreateFrameAndMemsetPlane(video_frame_factory.get()); 309 CreateFrameAndMemsetPlane(video_frame_factory.get());
310 // TODO(jfroy): Need to test that the encoder can encode VideoFrames provided
311 // by the VideoFrameFactory.
307 encoder_.reset(); 312 encoder_.reset();
308 message_loop_.RunUntilIdle(); 313 message_loop_.RunUntilIdle();
309 CreateFrameAndMemsetPlane(video_frame_factory.get()); 314 CreateFrameAndMemsetPlane(video_frame_factory.get());
310 } 315 }
311 316
312 } // namespace cast 317 } // namespace cast
313 } // namespace media 318 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/sender/h264_vt_encoder.cc ('k') | media/cast/sender/size_adaptable_video_encoder_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698