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

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

Issue 2086353002: Remove calls to deprecated MessageLoop methods in media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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
« no previous file with comments | « media/capture/video/file_video_capture_device.cc ('k') | media/cast/test/cast_benchmarks.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <queue> 7 #include <queue>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 power_source_ = new TestPowerSource(); 228 power_source_ = new TestPowerSource();
229 power_monitor_.reset(new base::PowerMonitor( 229 power_monitor_.reset(new base::PowerMonitor(
230 std::unique_ptr<TestPowerSource>(power_source_))); 230 std::unique_ptr<TestPowerSource>(power_source_)));
231 231
232 cast_environment_ = new CastEnvironment( 232 cast_environment_ = new CastEnvironment(
233 std::unique_ptr<base::TickClock>(clock_), message_loop_.task_runner(), 233 std::unique_ptr<base::TickClock>(clock_), message_loop_.task_runner(),
234 message_loop_.task_runner(), message_loop_.task_runner()); 234 message_loop_.task_runner(), message_loop_.task_runner());
235 encoder_.reset(new H264VideoToolboxEncoder( 235 encoder_.reset(new H264VideoToolboxEncoder(
236 cast_environment_, video_sender_config_, 236 cast_environment_, video_sender_config_,
237 base::Bind(&SaveOperationalStatus, &operational_status_))); 237 base::Bind(&SaveOperationalStatus, &operational_status_)));
238 message_loop_.RunUntilIdle(); 238 base::RunLoop().RunUntilIdle();
239 EXPECT_EQ(STATUS_INITIALIZED, operational_status_); 239 EXPECT_EQ(STATUS_INITIALIZED, operational_status_);
240 } 240 }
241 241
242 void TearDown() final { 242 void TearDown() final {
243 encoder_.reset(); 243 encoder_.reset();
244 message_loop_.RunUntilIdle(); 244 base::RunLoop().RunUntilIdle();
245 power_monitor_.reset(); 245 power_monitor_.reset();
246 } 246 }
247 247
248 void AdvanceClockAndVideoFrameTimestamp() { 248 void AdvanceClockAndVideoFrameTimestamp() {
249 clock_->Advance(base::TimeDelta::FromMilliseconds(33)); 249 clock_->Advance(base::TimeDelta::FromMilliseconds(33));
250 frame_->set_timestamp(frame_->timestamp() + 250 frame_->set_timestamp(frame_->timestamp() +
251 base::TimeDelta::FromMilliseconds(33)); 251 base::TimeDelta::FromMilliseconds(33));
252 } 252 }
253 253
254 static void SetUpTestCase() { 254 static void SetUpTestCase() {
(...skipping 30 matching lines...) Expand all
285 TEST_F(H264VideoToolboxEncoderTest, CheckFrameMetadataSequence) { 285 TEST_F(H264VideoToolboxEncoderTest, CheckFrameMetadataSequence) {
286 scoped_refptr<MetadataRecorder> metadata_recorder(new MetadataRecorder()); 286 scoped_refptr<MetadataRecorder> metadata_recorder(new MetadataRecorder());
287 VideoEncoder::FrameEncodedCallback cb = base::Bind( 287 VideoEncoder::FrameEncodedCallback cb = base::Bind(
288 &MetadataRecorder::CompareFrameWithExpected, metadata_recorder.get()); 288 &MetadataRecorder::CompareFrameWithExpected, metadata_recorder.get());
289 289
290 metadata_recorder->PushExpectation( 290 metadata_recorder->PushExpectation(
291 FrameId::first(), FrameId::first(), 291 FrameId::first(), FrameId::first(),
292 RtpTimeTicks::FromTimeDelta(frame_->timestamp(), kVideoFrequency), 292 RtpTimeTicks::FromTimeDelta(frame_->timestamp(), kVideoFrequency),
293 clock_->NowTicks()); 293 clock_->NowTicks());
294 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb)); 294 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb));
295 message_loop_.RunUntilIdle(); 295 base::RunLoop().RunUntilIdle();
296 296
297 for (FrameId frame_id = FrameId::first() + 1; 297 for (FrameId frame_id = FrameId::first() + 1;
298 frame_id < FrameId::first() + 10; ++frame_id) { 298 frame_id < FrameId::first() + 10; ++frame_id) {
299 AdvanceClockAndVideoFrameTimestamp(); 299 AdvanceClockAndVideoFrameTimestamp();
300 metadata_recorder->PushExpectation( 300 metadata_recorder->PushExpectation(
301 frame_id, frame_id - 1, 301 frame_id, frame_id - 1,
302 RtpTimeTicks::FromTimeDelta(frame_->timestamp(), kVideoFrequency), 302 RtpTimeTicks::FromTimeDelta(frame_->timestamp(), kVideoFrequency),
303 clock_->NowTicks()); 303 clock_->NowTicks());
304 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb)); 304 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb));
305 } 305 }
306 306
307 encoder_.reset(); 307 encoder_.reset();
308 message_loop_.RunUntilIdle(); 308 base::RunLoop().RunUntilIdle();
309 309
310 EXPECT_EQ(10, metadata_recorder->count_frames_delivered()); 310 EXPECT_EQ(10, metadata_recorder->count_frames_delivered());
311 } 311 }
312 312
313 #if defined(USE_PROPRIETARY_CODECS) 313 #if defined(USE_PROPRIETARY_CODECS)
314 TEST_F(H264VideoToolboxEncoderTest, CheckFramesAreDecodable) { 314 TEST_F(H264VideoToolboxEncoderTest, CheckFramesAreDecodable) {
315 VideoDecoderConfig config(kCodecH264, H264PROFILE_MAIN, frame_->format(), 315 VideoDecoderConfig config(kCodecH264, H264PROFILE_MAIN, frame_->format(),
316 COLOR_SPACE_UNSPECIFIED, frame_->coded_size(), 316 COLOR_SPACE_UNSPECIFIED, frame_->coded_size(),
317 frame_->visible_rect(), frame_->natural_size(), 317 frame_->visible_rect(), frame_->natural_size(),
318 EmptyExtraData(), Unencrypted()); 318 EmptyExtraData(), Unencrypted());
(...skipping 17 matching lines...) Expand all
336 336
337 TEST_F(H264VideoToolboxEncoderTest, CheckVideoFrameFactory) { 337 TEST_F(H264VideoToolboxEncoderTest, CheckVideoFrameFactory) {
338 auto video_frame_factory = encoder_->CreateVideoFrameFactory(); 338 auto video_frame_factory = encoder_->CreateVideoFrameFactory();
339 ASSERT_TRUE(video_frame_factory.get()); 339 ASSERT_TRUE(video_frame_factory.get());
340 // The first call to |MaybeCreateFrame| will return null but post a task to 340 // The first call to |MaybeCreateFrame| will return null but post a task to
341 // the encoder to initialize for the specified frame size. We then drain the 341 // the encoder to initialize for the specified frame size. We then drain the
342 // message loop. After that, the encoder should have initialized and we 342 // message loop. After that, the encoder should have initialized and we
343 // request a frame again. 343 // request a frame again.
344 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 344 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
345 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 345 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
346 message_loop_.RunUntilIdle(); 346 base::RunLoop().RunUntilIdle();
347 CreateFrameAndMemsetPlane(video_frame_factory.get()); 347 CreateFrameAndMemsetPlane(video_frame_factory.get());
348 } 348 }
349 349
350 TEST_F(H264VideoToolboxEncoderTest, CheckPowerMonitoring) { 350 TEST_F(H264VideoToolboxEncoderTest, CheckPowerMonitoring) {
351 // Encode a frame, suspend, encode a frame, resume, encode a frame. 351 // Encode a frame, suspend, encode a frame, resume, encode a frame.
352 352
353 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback); 353 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback);
354 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb)); 354 EXPECT_TRUE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb));
355 power_source_->GenerateSuspendEvent(); 355 power_source_->GenerateSuspendEvent();
356 EXPECT_FALSE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb)); 356 EXPECT_FALSE(encoder_->EncodeVideoFrame(frame_, clock_->NowTicks(), cb));
(...skipping 15 matching lines...) Expand all
372 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback); 372 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback);
373 auto video_frame_factory = encoder_->CreateVideoFrameFactory(); 373 auto video_frame_factory = encoder_->CreateVideoFrameFactory();
374 ASSERT_TRUE(video_frame_factory.get()); 374 ASSERT_TRUE(video_frame_factory.get());
375 375
376 // The first call to |MaybeCreateFrame| will return null but post a task to 376 // The first call to |MaybeCreateFrame| will return null but post a task to
377 // the encoder to initialize for the specified frame size. We then drain the 377 // the encoder to initialize for the specified frame size. We then drain the
378 // message loop. After that, the encoder should have initialized and we 378 // message loop. After that, the encoder should have initialized and we
379 // request a frame again. 379 // request a frame again.
380 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 380 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
381 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 381 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
382 message_loop_.RunUntilIdle(); 382 base::RunLoop().RunUntilIdle();
383 CreateFrameAndMemsetPlane(video_frame_factory.get()); 383 CreateFrameAndMemsetPlane(video_frame_factory.get());
384 384
385 // After a power suspension, the factory should not produce frames. 385 // After a power suspension, the factory should not produce frames.
386 power_source_->GenerateSuspendEvent(); 386 power_source_->GenerateSuspendEvent();
387 387
388 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 388 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
389 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 389 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
390 message_loop_.RunUntilIdle(); 390 base::RunLoop().RunUntilIdle();
391 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 391 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
392 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 392 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
393 393
394 // After a power resume event, the factory should produce frames right away 394 // After a power resume event, the factory should produce frames right away
395 // because the encoder re-initializes on its own. 395 // because the encoder re-initializes on its own.
396 power_source_->GenerateResumeEvent(); 396 power_source_->GenerateResumeEvent();
397 CreateFrameAndMemsetPlane(video_frame_factory.get()); 397 CreateFrameAndMemsetPlane(video_frame_factory.get());
398 } 398 }
399 399
400 TEST_F(H264VideoToolboxEncoderTest, 400 TEST_F(H264VideoToolboxEncoderTest,
401 CheckPowerMonitoringVideoFrameFactoryNoInitialFrame) { 401 CheckPowerMonitoringVideoFrameFactoryNoInitialFrame) {
402 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback); 402 VideoEncoder::FrameEncodedCallback cb = base::Bind(&NoopFrameEncodedCallback);
403 auto video_frame_factory = encoder_->CreateVideoFrameFactory(); 403 auto video_frame_factory = encoder_->CreateVideoFrameFactory();
404 ASSERT_TRUE(video_frame_factory.get()); 404 ASSERT_TRUE(video_frame_factory.get());
405 405
406 // After a power suspension, the factory should not produce frames. 406 // After a power suspension, the factory should not produce frames.
407 power_source_->GenerateSuspendEvent(); 407 power_source_->GenerateSuspendEvent();
408 408
409 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 409 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
410 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 410 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
411 message_loop_.RunUntilIdle(); 411 base::RunLoop().RunUntilIdle();
412 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame( 412 ASSERT_FALSE(video_frame_factory->MaybeCreateFrame(
413 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta())); 413 gfx::Size(kVideoWidth, kVideoHeight), base::TimeDelta()));
414 414
415 // After a power resume event, the factory should produce frames right away 415 // After a power resume event, the factory should produce frames right away
416 // because the encoder re-initializes on its own. 416 // because the encoder re-initializes on its own.
417 power_source_->GenerateResumeEvent(); 417 power_source_->GenerateResumeEvent();
418 CreateFrameAndMemsetPlane(video_frame_factory.get()); 418 CreateFrameAndMemsetPlane(video_frame_factory.get());
419 } 419 }
420 420
421 } // namespace cast 421 } // namespace cast
422 } // namespace media 422 } // namespace media
OLDNEW
« no previous file with comments | « media/capture/video/file_video_capture_device.cc ('k') | media/cast/test/cast_benchmarks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698