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

Side by Side Diff: webrtc/api/videocapturertracksource_unittest.cc

Issue 1773993002: Add VideoTrackSource implementation. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed comments Created 4 years, 9 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 | « webrtc/api/videocapturertracksource.cc ('k') | webrtc/api/videosourceproxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 // Test that the source ignores an unknown optional constraint. 347 // Test that the source ignores an unknown optional constraint.
348 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionalConstraint) { 348 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionalConstraint) {
349 FakeConstraints constraints; 349 FakeConstraints constraints;
350 constraints.AddOptional("weird key", 640); 350 constraints.AddOptional("weird key", 640);
351 351
352 CreateVideoCapturerSource(&constraints); 352 CreateVideoCapturerSource(&constraints);
353 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 353 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
354 kMaxWaitMs); 354 kMaxWaitMs);
355 } 355 }
356 356
357 TEST_F(VideoCapturerTrackSourceTest, SetValidOptionValues) { 357 TEST_F(VideoCapturerTrackSourceTest, SetValidDenoisingConstraint) {
358 FakeConstraints constraints; 358 FakeConstraints constraints;
359 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "false"); 359 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "true");
360 360
361 CreateVideoCapturerSource(&constraints); 361 CreateVideoCapturerSource(&constraints);
362 362
363 EXPECT_EQ(rtc::Optional<bool>(false), 363 EXPECT_TRUE(source_->needs_denoising());
364 source_->options()->video_noise_reduction);
365 } 364 }
366 365
367 TEST_F(VideoCapturerTrackSourceTest, OptionNotSet) { 366 TEST_F(VideoCapturerTrackSourceTest, NoiseReductionConstraintNotSet) {
368 FakeConstraints constraints; 367 FakeConstraints constraints;
369 CreateVideoCapturerSource(&constraints); 368 CreateVideoCapturerSource(&constraints);
370 EXPECT_EQ(rtc::Optional<bool>(), source_->options()->video_noise_reduction); 369 EXPECT_FALSE(source_->needs_denoising());
371 } 370 }
372 371
373 TEST_F(VideoCapturerTrackSourceTest, MandatoryOptionOverridesOptional) { 372 TEST_F(VideoCapturerTrackSourceTest,
373 MandatoryDenoisingConstraintOverridesOptional) {
374 FakeConstraints constraints; 374 FakeConstraints constraints;
375 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, true); 375 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, false);
376 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, false); 376 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, true);
377 377
378 CreateVideoCapturerSource(&constraints); 378 CreateVideoCapturerSource(&constraints);
379 379
380 EXPECT_EQ(rtc::Optional<bool>(true), 380 EXPECT_FALSE(source_->needs_denoising());
381 source_->options()->video_noise_reduction);
382 } 381 }
383 382
384 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionKeyOptional) { 383 TEST_F(VideoCapturerTrackSourceTest, NoiseReductionAndInvalidKeyOptional) {
385 FakeConstraints constraints; 384 FakeConstraints constraints;
386 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, false); 385 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, true);
387 constraints.AddOptional("invalidKey", false); 386 constraints.AddOptional("invalidKey", false);
388 387
389 CreateVideoCapturerSource(&constraints); 388 CreateVideoCapturerSource(&constraints);
390 389
391 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 390 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
392 kMaxWaitMs); 391 kMaxWaitMs);
393 EXPECT_EQ(rtc::Optional<bool>(false), 392 EXPECT_TRUE(source_->needs_denoising());
394 source_->options()->video_noise_reduction);
395 } 393 }
396 394
397 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionKeyMandatory) { 395 TEST_F(VideoCapturerTrackSourceTest, NoiseReductionAndInvalidKeyMandatory) {
398 FakeConstraints constraints; 396 FakeConstraints constraints;
399 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, false); 397 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, false);
400 constraints.AddMandatory("invalidKey", false); 398 constraints.AddMandatory("invalidKey", false);
401 399
402 CreateVideoCapturerSource(&constraints); 400 CreateVideoCapturerSource(&constraints);
403 401
404 EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), 402 EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(),
405 kMaxWaitMs); 403 kMaxWaitMs);
406 EXPECT_EQ(rtc::Optional<bool>(), source_->options()->video_noise_reduction); 404 EXPECT_FALSE(source_->needs_denoising());
407 } 405 }
408 406
409 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionValueOptional) { 407 TEST_F(VideoCapturerTrackSourceTest, InvalidDenoisingValueOptional) {
410 FakeConstraints constraints; 408 FakeConstraints constraints;
411 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, 409 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction,
412 "not a boolean"); 410 "not a boolean");
413 411
414 CreateVideoCapturerSource(&constraints); 412 CreateVideoCapturerSource(&constraints);
415 413
416 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 414 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
417 kMaxWaitMs); 415 kMaxWaitMs);
418 EXPECT_EQ(rtc::Optional<bool>(), source_->options()->video_noise_reduction); 416 EXPECT_FALSE(source_->needs_denoising());
419 } 417 }
420 418
421 TEST_F(VideoCapturerTrackSourceTest, InvalidOptionValueMandatory) { 419 TEST_F(VideoCapturerTrackSourceTest, InvalidDenoisingValueMandatory) {
422 FakeConstraints constraints; 420 FakeConstraints constraints;
423 // Optional constraints should be ignored if the mandatory constraints fail. 421 // Optional constraints should be ignored if the mandatory constraints fail.
424 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, "false"); 422 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, "false");
425 // Values are case-sensitive and must be all lower-case. 423 // Values are case-sensitive and must be all lower-case.
426 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "True"); 424 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "True");
427 425
428 CreateVideoCapturerSource(&constraints); 426 CreateVideoCapturerSource(&constraints);
429 427
430 EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), 428 EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(),
431 kMaxWaitMs); 429 kMaxWaitMs);
432 EXPECT_EQ(rtc::Optional<bool>(), source_->options()->video_noise_reduction); 430 EXPECT_FALSE(source_->needs_denoising());
433 } 431 }
434 432
435 TEST_F(VideoCapturerTrackSourceTest, MixedOptionsAndConstraints) { 433 TEST_F(VideoCapturerTrackSourceTest, MixedOptionsAndConstraints) {
436 FakeConstraints constraints; 434 FakeConstraints constraints;
437 constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 352); 435 constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 352);
438 constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 288); 436 constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 288);
439 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 5); 437 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 5);
440 438
441 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, false); 439 constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, false);
442 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, true); 440 constraints.AddOptional(MediaConstraintsInterface::kNoiseReduction, true);
443 441
444 CreateVideoCapturerSource(&constraints); 442 CreateVideoCapturerSource(&constraints);
445 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 443 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
446 kMaxWaitMs); 444 kMaxWaitMs);
447 const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); 445 const cricket::VideoFormat* format = capturer_->GetCaptureFormat();
448 ASSERT_TRUE(format != NULL); 446 ASSERT_TRUE(format != NULL);
449 EXPECT_EQ(352, format->width); 447 EXPECT_EQ(352, format->width);
450 EXPECT_EQ(288, format->height); 448 EXPECT_EQ(288, format->height);
451 EXPECT_EQ(30, format->framerate()); 449 EXPECT_EQ(30, format->framerate());
452 450
453 EXPECT_EQ(rtc::Optional<bool>(false), 451 EXPECT_FALSE(source_->needs_denoising());
454 source_->options()->video_noise_reduction);
455 } 452 }
456 453
457 // Tests that the source starts video with the default resolution for 454 // Tests that the source starts video with the default resolution for
458 // screencast if no constraint is set. 455 // screencast if no constraint is set.
459 TEST_F(VideoCapturerTrackSourceTest, ScreencastResolutionNoConstraint) { 456 TEST_F(VideoCapturerTrackSourceTest, ScreencastResolutionNoConstraint) {
460 InitScreencast(); 457 InitScreencast();
461 capturer_->TestWithoutCameraFormats(); 458 capturer_->TestWithoutCameraFormats();
462 459
463 CreateVideoCapturerSource(); 460 CreateVideoCapturerSource();
461 ASSERT_TRUE(source_->is_screencast());
464 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 462 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
465 kMaxWaitMs); 463 kMaxWaitMs);
466 const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); 464 const cricket::VideoFormat* format = capturer_->GetCaptureFormat();
467 ASSERT_TRUE(format != NULL); 465 ASSERT_TRUE(format != NULL);
468 EXPECT_EQ(640, format->width); 466 EXPECT_EQ(640, format->width);
469 EXPECT_EQ(480, format->height); 467 EXPECT_EQ(480, format->height);
470 EXPECT_EQ(30, format->framerate()); 468 EXPECT_EQ(30, format->framerate());
471 } 469 }
472 470
473 // Tests that the source starts video with the max width and height set by 471 // Tests that the source starts video with the max width and height set by
474 // constraints for screencast. 472 // constraints for screencast.
475 TEST_F(VideoCapturerTrackSourceTest, ScreencastResolutionWithConstraint) { 473 TEST_F(VideoCapturerTrackSourceTest, ScreencastResolutionWithConstraint) {
476 FakeConstraints constraints; 474 FakeConstraints constraints;
477 constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 480); 475 constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 480);
478 constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 270); 476 constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 270);
479 477
480 InitScreencast(); 478 InitScreencast();
481 capturer_->TestWithoutCameraFormats(); 479 capturer_->TestWithoutCameraFormats();
482 480
483 CreateVideoCapturerSource(&constraints); 481 CreateVideoCapturerSource(&constraints);
482 ASSERT_TRUE(source_->is_screencast());
484 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 483 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
485 kMaxWaitMs); 484 kMaxWaitMs);
486 const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); 485 const cricket::VideoFormat* format = capturer_->GetCaptureFormat();
487 ASSERT_TRUE(format != NULL); 486 ASSERT_TRUE(format != NULL);
488 EXPECT_EQ(480, format->width); 487 EXPECT_EQ(480, format->width);
489 EXPECT_EQ(270, format->height); 488 EXPECT_EQ(270, format->height);
490 EXPECT_EQ(30, format->framerate()); 489 EXPECT_EQ(30, format->framerate());
491 } 490 }
492 491
493 TEST_F(VideoCapturerTrackSourceTest, MandatorySubOneFpsConstraints) { 492 TEST_F(VideoCapturerTrackSourceTest, MandatorySubOneFpsConstraints) {
(...skipping 10 matching lines...) Expand all
504 FakeConstraints constraints; 503 FakeConstraints constraints;
505 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5); 504 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5);
506 505
507 CreateVideoCapturerSource(&constraints); 506 CreateVideoCapturerSource(&constraints);
508 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 507 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
509 kMaxWaitMs); 508 kMaxWaitMs);
510 const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); 509 const cricket::VideoFormat* format = capturer_->GetCaptureFormat();
511 ASSERT_TRUE(format != NULL); 510 ASSERT_TRUE(format != NULL);
512 EXPECT_EQ(30, format->framerate()); 511 EXPECT_EQ(30, format->framerate());
513 } 512 }
OLDNEW
« no previous file with comments | « webrtc/api/videocapturertracksource.cc ('k') | webrtc/api/videosourceproxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698