| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "content/renderer/media/media_stream_constraints_util_video_content.h" | 5 #include "content/renderer/media/media_stream_constraints_util_video_content.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "content/renderer/media/mock_constraint_factory.h" | 10 #include "content/renderer/media/mock_constraint_factory.h" |
| 11 #include "media/base/limits.h" | 11 #include "media/base/limits.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 13 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 13 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| 14 | 14 |
| 15 namespace content { | 15 namespace content { |
| 16 | 16 |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 const double kDefaultScreenCastAspectRatio = | |
| 20 static_cast<double>(kDefaultScreenCastWidth) / | |
| 21 static_cast<double>(kDefaultScreenCastHeight); | |
| 22 | |
| 23 void CheckNonResolutionDefaults(const VideoCaptureSettings& result) { | 19 void CheckNonResolutionDefaults(const VideoCaptureSettings& result) { |
| 24 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); | 20 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); |
| 25 EXPECT_EQ(base::Optional<bool>(), result.noise_reduction()); | 21 EXPECT_EQ(base::Optional<bool>(), result.noise_reduction()); |
| 26 EXPECT_EQ(std::string(), result.device_id()); | 22 EXPECT_EQ(std::string(), result.device_id()); |
| 27 } | 23 } |
| 28 | 24 |
| 29 void CheckNonFrameRateDefaults(const VideoCaptureSettings& result) { | 25 void CheckNonFrameRateDefaults(const VideoCaptureSettings& result) { |
| 30 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 26 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); |
| 31 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 27 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); |
| 32 EXPECT_EQ(base::Optional<bool>(), result.noise_reduction()); | 28 EXPECT_EQ(base::Optional<bool>(), result.noise_reduction()); |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 result.Width()); | 257 result.Width()); |
| 262 CheckNonResolutionDefaults(result); | 258 CheckNonResolutionDefaults(result); |
| 263 EXPECT_EQ(1.0 / kHeight, result.track_adapter_settings().min_aspect_ratio); | 259 EXPECT_EQ(1.0 / kHeight, result.track_adapter_settings().min_aspect_ratio); |
| 264 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kHeight, | 260 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kHeight, |
| 265 result.track_adapter_settings().max_aspect_ratio); | 261 result.track_adapter_settings().max_aspect_ratio); |
| 266 CheckTrackAdapterSettingsEqualsFormat(result); | 262 CheckTrackAdapterSettingsEqualsFormat(result); |
| 267 } | 263 } |
| 268 | 264 |
| 269 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMinHeight) { | 265 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMinHeight) { |
| 270 constraint_factory_.Reset(); | 266 constraint_factory_.Reset(); |
| 271 const int kHeight = 1000; | 267 const int kHeight = 2000; |
| 272 constraint_factory_.basic().height.setMin(kHeight); | 268 constraint_factory_.basic().height.setMin(kHeight); |
| 273 auto result = SelectSettings(); | 269 auto result = SelectSettings(); |
| 274 EXPECT_TRUE(result.HasValue()); | 270 EXPECT_TRUE(result.HasValue()); |
| 275 // kHeight is greater that the default, so expect kHeight. | 271 // kHeight is greater that the default, so expect kHeight. |
| 276 EXPECT_EQ(kHeight, result.Height()); | 272 EXPECT_EQ(kHeight, result.Height()); |
| 277 EXPECT_EQ(std::round(kHeight * kDefaultScreenCastAspectRatio), | 273 EXPECT_EQ(std::round(kHeight * kDefaultScreenCastAspectRatio), |
| 278 result.Width()); | 274 result.Width()); |
| 279 CheckNonResolutionDefaults(result); | 275 CheckNonResolutionDefaults(result); |
| 280 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 276 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 281 result.track_adapter_settings().min_aspect_ratio); | 277 result.track_adapter_settings().min_aspect_ratio); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 292 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 288 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); |
| 293 CheckNonResolutionDefaults(result); | 289 CheckNonResolutionDefaults(result); |
| 294 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 290 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 295 result.track_adapter_settings().min_aspect_ratio); | 291 result.track_adapter_settings().min_aspect_ratio); |
| 296 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kSmallHeight, | 292 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kSmallHeight, |
| 297 result.track_adapter_settings().max_aspect_ratio); | 293 result.track_adapter_settings().max_aspect_ratio); |
| 298 CheckTrackAdapterSettingsEqualsFormat(result); | 294 CheckTrackAdapterSettingsEqualsFormat(result); |
| 299 } | 295 } |
| 300 | 296 |
| 301 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMaxHeight) { | 297 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMaxHeight) { |
| 302 constraint_factory_.Reset(); | 298 // kMaxHeight smaller than the default. |
| 303 const int kHeight = 1000; | 299 { |
| 304 constraint_factory_.basic().height.setMax(kHeight); | 300 constraint_factory_.Reset(); |
| 305 auto result = SelectSettings(); | 301 const int kMaxHeight = kDefaultScreenCastHeight - 100; |
| 306 EXPECT_TRUE(result.HasValue()); | 302 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 307 // kHeight is greater that the default, so expect the default. | 303 auto result = SelectSettings(); |
| 308 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 304 EXPECT_TRUE(result.HasValue()); |
| 309 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 305 EXPECT_EQ(kMaxHeight, result.Height()); |
| 310 CheckNonResolutionDefaults(result); | 306 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 311 EXPECT_EQ(1.0 / kHeight, result.track_adapter_settings().min_aspect_ratio); | 307 result.Width()); |
| 312 EXPECT_EQ(kMaxScreenCastDimension, | 308 CheckNonResolutionDefaults(result); |
| 313 result.track_adapter_settings().max_aspect_ratio); | 309 EXPECT_EQ(1.0 / kMaxHeight, |
| 314 CheckTrackAdapterSettingsEqualsFormat(result); | 310 result.track_adapter_settings().min_aspect_ratio); |
| 311 EXPECT_EQ(kMaxScreenCastDimension, |
| 312 result.track_adapter_settings().max_aspect_ratio); |
| 313 CheckTrackAdapterSettingsEqualsFormat(result); |
| 314 } |
| 315 | 315 |
| 316 const int kSmallHeight = 100; | 316 // kMaxHeight greater than the default. |
| 317 constraint_factory_.basic().height.setMax(kSmallHeight); | 317 { |
| 318 result = SelectSettings(); | 318 constraint_factory_.Reset(); |
| 319 EXPECT_TRUE(result.HasValue()); | 319 const int kMaxHeight = kDefaultScreenCastHeight + 100; |
| 320 // kSmallHeight is less that the default, so expect kSmallHeight. | 320 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 321 EXPECT_EQ(kSmallHeight, result.Height()); | 321 auto result = SelectSettings(); |
| 322 EXPECT_EQ(std::round(kSmallHeight * kDefaultScreenCastAspectRatio), | 322 EXPECT_TRUE(result.HasValue()); |
| 323 result.Width()); | 323 EXPECT_EQ(kMaxHeight, result.Height()); |
| 324 CheckNonResolutionDefaults(result); | 324 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 325 EXPECT_EQ(1.0 / kSmallHeight, | 325 result.Width()); |
| 326 result.track_adapter_settings().min_aspect_ratio); | 326 CheckNonResolutionDefaults(result); |
| 327 EXPECT_EQ(kMaxScreenCastDimension, | 327 EXPECT_EQ(1.0 / kMaxHeight, |
| 328 result.track_adapter_settings().max_aspect_ratio); | 328 result.track_adapter_settings().min_aspect_ratio); |
| 329 CheckTrackAdapterSettingsEqualsFormat(result); | 329 EXPECT_EQ(kMaxScreenCastDimension, |
| 330 result.track_adapter_settings().max_aspect_ratio); |
| 331 CheckTrackAdapterSettingsEqualsFormat(result); |
| 332 } |
| 333 |
| 334 // kMaxHeight greater than the maximum allowed. |
| 335 { |
| 336 constraint_factory_.Reset(); |
| 337 constraint_factory_.basic().height.setMax(kMaxScreenCastDimension + 100); |
| 338 auto result = SelectSettings(); |
| 339 EXPECT_TRUE(result.HasValue()); |
| 340 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); |
| 341 EXPECT_EQ( |
| 342 std::round(kDefaultScreenCastHeight * kDefaultScreenCastAspectRatio), |
| 343 result.Width()); |
| 344 CheckNonResolutionDefaults(result); |
| 345 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 346 result.track_adapter_settings().min_aspect_ratio); |
| 347 EXPECT_EQ(kMaxScreenCastDimension, |
| 348 result.track_adapter_settings().max_aspect_ratio); |
| 349 CheckTrackAdapterSettingsEqualsFormat(result); |
| 350 } |
| 330 } | 351 } |
| 331 | 352 |
| 332 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryHeightRange) { | 353 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryHeightRange) { |
| 333 constraint_factory_.Reset(); | 354 // Range includes the default. |
| 334 { | 355 { |
| 335 const int kMinHeight = 300; | 356 constraint_factory_.Reset(); |
| 336 const int kMaxHeight = 1000; | 357 const int kMinHeight = kDefaultScreenCastHeight - 100; |
| 358 const int kMaxHeight = kDefaultScreenCastHeight + 100; |
| 337 constraint_factory_.basic().height.setMin(kMinHeight); | 359 constraint_factory_.basic().height.setMin(kMinHeight); |
| 338 constraint_factory_.basic().height.setMax(kMaxHeight); | 360 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 339 auto result = SelectSettings(); | 361 auto result = SelectSettings(); |
| 340 EXPECT_TRUE(result.HasValue()); | 362 EXPECT_TRUE(result.HasValue()); |
| 341 // The range includes the default, so expect the default. | 363 EXPECT_EQ(kMaxHeight, result.Height()); |
| 342 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 364 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 343 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 365 result.Width()); |
| 344 CheckNonResolutionDefaults(result); | 366 CheckNonResolutionDefaults(result); |
| 345 EXPECT_EQ(1.0 / kMaxHeight, | 367 EXPECT_EQ(1.0 / kMaxHeight, |
| 346 result.track_adapter_settings().min_aspect_ratio); | 368 result.track_adapter_settings().min_aspect_ratio); |
| 347 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, | 369 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 348 result.track_adapter_settings().max_aspect_ratio); | 370 result.track_adapter_settings().max_aspect_ratio); |
| 349 CheckTrackAdapterSettingsEqualsFormat(result); | 371 CheckTrackAdapterSettingsEqualsFormat(result); |
| 350 } | 372 } |
| 351 | 373 |
| 374 // The whole range is greater than the default. |
| 352 { | 375 { |
| 353 const int kMinHeight = 900; | 376 constraint_factory_.Reset(); |
| 354 const int kMaxHeight = 1000; | 377 const int kMinHeight = kDefaultScreenCastHeight + 100; |
| 378 const int kMaxHeight = kDefaultScreenCastHeight + 200; |
| 355 constraint_factory_.basic().height.setMin(kMinHeight); | 379 constraint_factory_.basic().height.setMin(kMinHeight); |
| 356 constraint_factory_.basic().height.setMax(kMaxHeight); | 380 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 357 auto result = SelectSettings(); | 381 auto result = SelectSettings(); |
| 358 EXPECT_TRUE(result.HasValue()); | 382 EXPECT_TRUE(result.HasValue()); |
| 359 // The whole range is greater than the default, so expect the range minimum. | 383 EXPECT_EQ(kMaxHeight, result.Height()); |
| 360 EXPECT_EQ(kMinHeight, result.Height()); | 384 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 361 EXPECT_EQ(std::round(kMinHeight * kDefaultScreenCastAspectRatio), | |
| 362 result.Width()); | 385 result.Width()); |
| 363 CheckNonResolutionDefaults(result); | 386 CheckNonResolutionDefaults(result); |
| 364 EXPECT_EQ(1.0 / kMaxHeight, | 387 EXPECT_EQ(1.0 / kMaxHeight, |
| 365 result.track_adapter_settings().min_aspect_ratio); | 388 result.track_adapter_settings().min_aspect_ratio); |
| 366 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, | 389 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 367 result.track_adapter_settings().max_aspect_ratio); | 390 result.track_adapter_settings().max_aspect_ratio); |
| 368 CheckTrackAdapterSettingsEqualsFormat(result); | 391 CheckTrackAdapterSettingsEqualsFormat(result); |
| 369 } | 392 } |
| 370 | 393 |
| 394 // The whole range is less than the default. |
| 371 { | 395 { |
| 372 const int kMinHeight = 300; | 396 constraint_factory_.Reset(); |
| 373 const int kMaxHeight = 400; | 397 const int kMinHeight = kDefaultScreenCastHeight - 200; |
| 398 const int kMaxHeight = kDefaultScreenCastHeight - 100; |
| 374 constraint_factory_.basic().height.setMin(kMinHeight); | 399 constraint_factory_.basic().height.setMin(kMinHeight); |
| 375 constraint_factory_.basic().height.setMax(kMaxHeight); | 400 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 376 auto result = SelectSettings(); | 401 auto result = SelectSettings(); |
| 377 EXPECT_TRUE(result.HasValue()); | 402 EXPECT_TRUE(result.HasValue()); |
| 378 // The whole range is less than the default, so expect the range maximum. | |
| 379 EXPECT_EQ(kMaxHeight, result.Height()); | 403 EXPECT_EQ(kMaxHeight, result.Height()); |
| 380 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), | 404 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 381 result.Width()); | 405 result.Width()); |
| 382 CheckNonResolutionDefaults(result); | 406 CheckNonResolutionDefaults(result); |
| 383 EXPECT_EQ(1.0 / kMaxHeight, | 407 EXPECT_EQ(1.0 / kMaxHeight, |
| 384 result.track_adapter_settings().min_aspect_ratio); | 408 result.track_adapter_settings().min_aspect_ratio); |
| 385 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, | 409 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 386 result.track_adapter_settings().max_aspect_ratio); | 410 result.track_adapter_settings().max_aspect_ratio); |
| 387 CheckTrackAdapterSettingsEqualsFormat(result); | 411 CheckTrackAdapterSettingsEqualsFormat(result); |
| 388 } | 412 } |
| 389 } | 413 } |
| 390 | 414 |
| 391 TEST_F(MediaStreamConstraintsUtilVideoContentTest, IdealHeight) { | 415 TEST_F(MediaStreamConstraintsUtilVideoContentTest, IdealHeight) { |
| 392 // Unconstrained. | 416 // Unconstrained. |
| 393 { | 417 { |
| 394 constraint_factory_.Reset(); | 418 constraint_factory_.Reset(); |
| 395 const int kIdealHeight = 1000; | 419 const int kIdealHeight = 1000; |
| 396 constraint_factory_.basic().height.setIdeal(kIdealHeight); | 420 constraint_factory_.basic().height.setIdeal(kIdealHeight); |
| 397 auto result = SelectSettings(); | 421 auto result = SelectSettings(); |
| 398 EXPECT_TRUE(result.HasValue()); | 422 EXPECT_TRUE(result.HasValue()); |
| 399 EXPECT_EQ(kIdealHeight, result.Height()); | 423 EXPECT_EQ(kIdealHeight, result.Height()); |
| 400 // When ideal height is given, the algorithm returns a width that is closest | 424 // When ideal height is given, the algorithm returns a width that is closest |
| 401 // to height * kDefaultAspectRatio. | 425 // to height * kDefaultScreenCastAspectRatio. |
| 402 EXPECT_EQ(std::round(kIdealHeight * kDefaultScreenCastAspectRatio), | 426 EXPECT_EQ(std::round(kIdealHeight * kDefaultScreenCastAspectRatio), |
| 403 result.Width()); | 427 result.Width()); |
| 404 CheckNonResolutionDefaults(result); | 428 CheckNonResolutionDefaults(result); |
| 405 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); | 429 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); |
| 406 } | 430 } |
| 407 | 431 |
| 408 // Ideal greater than maximum. | 432 // Ideal greater than maximum. |
| 409 { | 433 { |
| 410 constraint_factory_.Reset(); | 434 constraint_factory_.Reset(); |
| 411 const int kIdealHeight = 1000; | 435 const int kIdealHeight = 1000; |
| 412 const int kMaxHeight = 800; | 436 const int kMaxHeight = 800; |
| 413 constraint_factory_.basic().height.setIdeal(kIdealHeight); | 437 constraint_factory_.basic().height.setIdeal(kIdealHeight); |
| 414 constraint_factory_.basic().height.setMax(kMaxHeight); | 438 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 415 auto result = SelectSettings(); | 439 auto result = SelectSettings(); |
| 416 EXPECT_TRUE(result.HasValue()); | 440 EXPECT_TRUE(result.HasValue()); |
| 417 // Ideal height is greater than the maximum, expect maximum. | 441 // Ideal height is greater than the maximum, expect maximum. |
| 418 EXPECT_EQ(kMaxHeight, result.Height()); | 442 EXPECT_EQ(kMaxHeight, result.Height()); |
| 419 // Expect closest to kMaxHeight * kDefaultAspectRatio. | 443 // Expect closest to kMaxHeight * kDefaultScreenCastAspectRatio. |
| 420 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), | 444 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), |
| 421 result.Width()); | 445 result.Width()); |
| 422 CheckNonResolutionDefaults(result); | 446 CheckNonResolutionDefaults(result); |
| 423 EXPECT_EQ(1.0 / kMaxHeight, | 447 EXPECT_EQ(1.0 / kMaxHeight, |
| 424 result.track_adapter_settings().min_aspect_ratio); | 448 result.track_adapter_settings().min_aspect_ratio); |
| 425 EXPECT_EQ(kMaxScreenCastDimension, | 449 EXPECT_EQ(kMaxScreenCastDimension, |
| 426 result.track_adapter_settings().max_aspect_ratio); | 450 result.track_adapter_settings().max_aspect_ratio); |
| 427 CheckTrackAdapterSettingsEqualsFormat(result); | 451 CheckTrackAdapterSettingsEqualsFormat(result); |
| 428 } | 452 } |
| 429 | 453 |
| 430 // Ideal less than minimum. | 454 // Ideal less than minimum. |
| 431 { | 455 { |
| 432 constraint_factory_.Reset(); | 456 constraint_factory_.Reset(); |
| 433 const int kIdealHeight = 1000; | 457 const int kIdealHeight = 1000; |
| 434 const int kMinHeight = 1200; | 458 const int kMinHeight = 1200; |
| 435 constraint_factory_.basic().height.setIdeal(kIdealHeight); | 459 constraint_factory_.basic().height.setIdeal(kIdealHeight); |
| 436 constraint_factory_.basic().height.setMin(kMinHeight); | 460 constraint_factory_.basic().height.setMin(kMinHeight); |
| 437 auto result = SelectSettings(); | 461 auto result = SelectSettings(); |
| 438 EXPECT_TRUE(result.HasValue()); | 462 EXPECT_TRUE(result.HasValue()); |
| 439 // Ideal height is less than the minimum, expect minimum. | 463 // Ideal height is less than the minimum, expect minimum. |
| 440 EXPECT_EQ(kMinHeight, result.Height()); | 464 EXPECT_EQ(kMinHeight, result.Height()); |
| 441 // Expect closest to kMinHeight * kDefaultAspectRatio. | 465 // Expect closest to kMinHeight * kDefaultScreenCastAspectRatio. |
| 442 EXPECT_EQ(std::round(kMinHeight * kDefaultScreenCastAspectRatio), | 466 EXPECT_EQ(std::round(kMinHeight * kDefaultScreenCastAspectRatio), |
| 443 result.Width()); | 467 result.Width()); |
| 444 CheckNonResolutionDefaults(result); | 468 CheckNonResolutionDefaults(result); |
| 445 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 469 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 446 result.track_adapter_settings().min_aspect_ratio); | 470 result.track_adapter_settings().min_aspect_ratio); |
| 447 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, | 471 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 448 result.track_adapter_settings().max_aspect_ratio); | 472 result.track_adapter_settings().max_aspect_ratio); |
| 449 CheckTrackAdapterSettingsEqualsFormat(result); | 473 CheckTrackAdapterSettingsEqualsFormat(result); |
| 450 } | 474 } |
| 451 | 475 |
| 452 // Ideal intersects a box. | 476 // Ideal intersects a box. |
| 453 { | 477 { |
| 454 constraint_factory_.Reset(); | 478 constraint_factory_.Reset(); |
| 455 constraint_factory_.basic().height.setMin(500); | 479 constraint_factory_.basic().height.setMin(500); |
| 456 constraint_factory_.basic().height.setMax(1000); | 480 constraint_factory_.basic().height.setMax(1000); |
| 457 constraint_factory_.basic().width.setMin(100); | 481 constraint_factory_.basic().width.setMin(100); |
| 458 constraint_factory_.basic().width.setMax(500); | 482 constraint_factory_.basic().width.setMax(500); |
| 459 const int kIdealHeight = 750; | 483 const int kIdealHeight = 750; |
| 460 constraint_factory_.basic().height.setIdeal(kIdealHeight); | 484 constraint_factory_.basic().height.setIdeal(kIdealHeight); |
| 461 auto result = SelectSettings(); | 485 auto result = SelectSettings(); |
| 462 EXPECT_TRUE(result.HasValue()); | 486 EXPECT_TRUE(result.HasValue()); |
| 463 // Ideal height is included in the bounding box. | 487 // Ideal height is included in the bounding box. |
| 464 EXPECT_EQ(kIdealHeight, result.Height()); | 488 EXPECT_EQ(kIdealHeight, result.Height()); |
| 465 // Expect width closest to kIdealHeight * kDefaultAspectRatio, which is | 489 double default_aspect_ratio = |
| 466 // outside the box. Closest is max width. | 490 static_cast<double>(constraint_factory_.basic().width.max()) / |
| 467 EXPECT_EQ(constraint_factory_.basic().width.max(), result.Width()); | 491 constraint_factory_.basic().height.max(); |
| 492 // Expect width closest to kIdealHeight * default aspect ratio. |
| 493 EXPECT_EQ(std::round(kIdealHeight * default_aspect_ratio), result.Width()); |
| 468 CheckNonResolutionDefaults(result); | 494 CheckNonResolutionDefaults(result); |
| 469 EXPECT_EQ(100.0 / 1000.0, result.track_adapter_settings().min_aspect_ratio); | 495 EXPECT_EQ(100.0 / 1000.0, result.track_adapter_settings().min_aspect_ratio); |
| 470 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | 496 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); |
| 471 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 472 | |
| 473 constraint_factory_.basic().width.setMin(1200); | |
| 474 constraint_factory_.basic().width.setMax(2000); | |
| 475 result = SelectSettings(); | |
| 476 EXPECT_TRUE(result.HasValue()); | |
| 477 EXPECT_EQ(kIdealHeight, result.Height()); | |
| 478 // kIdealHeight * kDefaultAspectRatio is outside the box. Closest is | |
| 479 // min width. | |
| 480 EXPECT_EQ(constraint_factory_.basic().width.min(), result.Width()); | |
| 481 CheckNonResolutionDefaults(result); | |
| 482 EXPECT_EQ(1200.0 / 1000.0, | |
| 483 result.track_adapter_settings().min_aspect_ratio); | |
| 484 EXPECT_EQ(2000.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | |
| 485 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 486 | |
| 487 constraint_factory_.basic().width.setMin(100); | |
| 488 constraint_factory_.basic().width.setMax(500); | |
| 489 result = SelectSettings(); | |
| 490 EXPECT_TRUE(result.HasValue()); | |
| 491 EXPECT_EQ(kIdealHeight, result.Height()); | |
| 492 // kIdealHeight * kDefaultAspectRatio is outside the box. Closest is | |
| 493 // max width. | |
| 494 EXPECT_EQ(constraint_factory_.basic().width.max(), result.Width()); | |
| 495 CheckNonResolutionDefaults(result); | |
| 496 EXPECT_EQ(100.0 / 1000.0, result.track_adapter_settings().min_aspect_ratio); | |
| 497 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | |
| 498 CheckTrackAdapterSettingsEqualsFormat(result); | 497 CheckTrackAdapterSettingsEqualsFormat(result); |
| 499 } | 498 } |
| 500 | 499 |
| 501 // Ideal outside the box, closest to the side coinciding with max height. | 500 // Ideal outside the box, closest to the side coinciding with max height. |
| 502 { | 501 { |
| 503 const int kMaxHeight = 1000; | 502 const int kMaxHeight = 1000; |
| 504 constraint_factory_.Reset(); | 503 constraint_factory_.Reset(); |
| 505 constraint_factory_.basic().height.setMin(500); | 504 constraint_factory_.basic().height.setMin(500); |
| 506 constraint_factory_.basic().height.setMax(kMaxHeight); | 505 constraint_factory_.basic().height.setMax(kMaxHeight); |
| 507 constraint_factory_.basic().width.setMin(100); | 506 constraint_factory_.basic().width.setMin(100); |
| 508 constraint_factory_.basic().width.setMax(500); | 507 constraint_factory_.basic().width.setMax(500); |
| 509 constraint_factory_.basic().height.setIdeal(1200); | 508 constraint_factory_.basic().height.setIdeal(1200); |
| 510 auto result = SelectSettings(); | 509 auto result = SelectSettings(); |
| 511 EXPECT_TRUE(result.HasValue()); | 510 EXPECT_TRUE(result.HasValue()); |
| 512 EXPECT_EQ(kMaxHeight, result.Height()); | 511 EXPECT_EQ(kMaxHeight, result.Height()); |
| 513 // Expect width closest to kMaxHeight * kDefaultAspectRatio, which is | 512 // Expect width closest to kMaxHeight * default aspect ratio, which is |
| 514 // outside the box. Closest it max width. | 513 // outside the box. Closest it max width. |
| 515 EXPECT_EQ(constraint_factory_.basic().width.max(), result.Width()); | 514 EXPECT_EQ(constraint_factory_.basic().width.max(), result.Width()); |
| 516 CheckNonResolutionDefaults(result); | 515 CheckNonResolutionDefaults(result); |
| 517 EXPECT_EQ(100.0 / kMaxHeight, | 516 EXPECT_EQ(100.0 / kMaxHeight, |
| 518 result.track_adapter_settings().min_aspect_ratio); | 517 result.track_adapter_settings().min_aspect_ratio); |
| 519 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | 518 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); |
| 520 CheckTrackAdapterSettingsEqualsFormat(result); | 519 CheckTrackAdapterSettingsEqualsFormat(result); |
| 521 | |
| 522 constraint_factory_.basic().width.setMin(1500); | |
| 523 constraint_factory_.basic().width.setMax(2000); | |
| 524 result = SelectSettings(); | |
| 525 EXPECT_TRUE(result.HasValue()); | |
| 526 EXPECT_EQ(kMaxHeight, result.Height()); | |
| 527 // kMaxHeight * kDefaultAspectRatio is outside the box. Closest is min | |
| 528 // width. | |
| 529 EXPECT_EQ(constraint_factory_.basic().width.min(), result.Width()); | |
| 530 CheckNonResolutionDefaults(result); | |
| 531 EXPECT_EQ(1500.0 / kMaxHeight, | |
| 532 result.track_adapter_settings().min_aspect_ratio); | |
| 533 EXPECT_EQ(2000.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | |
| 534 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 535 | |
| 536 constraint_factory_.basic().width.setMin(100); | |
| 537 result = SelectSettings(); | |
| 538 EXPECT_TRUE(result.HasValue()); | |
| 539 EXPECT_EQ(kMaxHeight, result.Height()); | |
| 540 // kMaxHeight * kDefaultAspectRatio is within the width limits. | |
| 541 EXPECT_EQ(std::round(kMaxHeight * kDefaultScreenCastAspectRatio), | |
| 542 result.Width()); | |
| 543 CheckNonResolutionDefaults(result); | |
| 544 EXPECT_EQ(100.0 / kMaxHeight, | |
| 545 result.track_adapter_settings().min_aspect_ratio); | |
| 546 EXPECT_EQ(2000.0 / 500.0, result.track_adapter_settings().max_aspect_ratio); | |
| 547 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 548 } | 520 } |
| 549 | 521 |
| 550 // Ideal outside the constrained set, closest to a single point. | 522 // Ideal outside the constrained set, closest to a single point. |
| 551 { | 523 { |
| 552 constraint_factory_.Reset(); | 524 constraint_factory_.Reset(); |
| 553 constraint_factory_.basic().height.setMin(500); | 525 constraint_factory_.basic().height.setMin(500); |
| 554 constraint_factory_.basic().height.setMax(1000); | 526 constraint_factory_.basic().height.setMax(1000); |
| 555 constraint_factory_.basic().width.setMin(500); | 527 constraint_factory_.basic().width.setMin(500); |
| 556 constraint_factory_.basic().width.setMax(1000); | 528 constraint_factory_.basic().width.setMax(1000); |
| 557 constraint_factory_.basic().aspectRatio.setMin(1.0); | 529 constraint_factory_.basic().aspectRatio.setMin(1.0); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 580 CheckNonResolutionDefaults(result); | 552 CheckNonResolutionDefaults(result); |
| 581 EXPECT_EQ(static_cast<double>(kWidth) / kMaxScreenCastDimension, | 553 EXPECT_EQ(static_cast<double>(kWidth) / kMaxScreenCastDimension, |
| 582 result.track_adapter_settings().min_aspect_ratio); | 554 result.track_adapter_settings().min_aspect_ratio); |
| 583 EXPECT_EQ(static_cast<double>(kWidth) / kMinScreenCastDimension, | 555 EXPECT_EQ(static_cast<double>(kWidth) / kMinScreenCastDimension, |
| 584 result.track_adapter_settings().max_aspect_ratio); | 556 result.track_adapter_settings().max_aspect_ratio); |
| 585 CheckTrackAdapterSettingsEqualsFormat(result); | 557 CheckTrackAdapterSettingsEqualsFormat(result); |
| 586 } | 558 } |
| 587 | 559 |
| 588 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMinWidth) { | 560 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMinWidth) { |
| 589 constraint_factory_.Reset(); | 561 constraint_factory_.Reset(); |
| 590 const int kWidth = 1000; | 562 const int kWidth = 3000; |
| 591 constraint_factory_.basic().width.setMin(kWidth); | 563 constraint_factory_.basic().width.setMin(kWidth); |
| 592 auto result = SelectSettings(); | 564 auto result = SelectSettings(); |
| 593 EXPECT_TRUE(result.HasValue()); | 565 EXPECT_TRUE(result.HasValue()); |
| 594 // kWidth is greater that the default, so expect kWidth. | 566 // kWidth is greater that the default, so expect kWidth. |
| 595 EXPECT_EQ(kWidth, result.Width()); | 567 EXPECT_EQ(kWidth, result.Width()); |
| 596 EXPECT_EQ(std::round(kWidth / kDefaultScreenCastAspectRatio), | 568 EXPECT_EQ(std::round(kWidth / kDefaultScreenCastAspectRatio), |
| 597 result.Height()); | 569 result.Height()); |
| 598 CheckNonResolutionDefaults(result); | 570 CheckNonResolutionDefaults(result); |
| 599 EXPECT_EQ(static_cast<double>(kWidth) / kMaxScreenCastDimension, | 571 EXPECT_EQ(static_cast<double>(kWidth) / kMaxScreenCastDimension, |
| 600 result.track_adapter_settings().min_aspect_ratio); | 572 result.track_adapter_settings().min_aspect_ratio); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 613 CheckNonResolutionDefaults(result); | 585 CheckNonResolutionDefaults(result); |
| 614 EXPECT_EQ(static_cast<double>(kSmallWidth) / kMaxScreenCastDimension, | 586 EXPECT_EQ(static_cast<double>(kSmallWidth) / kMaxScreenCastDimension, |
| 615 result.track_adapter_settings().min_aspect_ratio); | 587 result.track_adapter_settings().min_aspect_ratio); |
| 616 EXPECT_EQ( | 588 EXPECT_EQ( |
| 617 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, | 589 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, |
| 618 result.track_adapter_settings().max_aspect_ratio); | 590 result.track_adapter_settings().max_aspect_ratio); |
| 619 CheckTrackAdapterSettingsEqualsFormat(result); | 591 CheckTrackAdapterSettingsEqualsFormat(result); |
| 620 } | 592 } |
| 621 | 593 |
| 622 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMaxWidth) { | 594 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryMaxWidth) { |
| 623 constraint_factory_.Reset(); | 595 // kMaxWidth less than the default. |
| 624 const int kWidth = 1000; | 596 { |
| 625 constraint_factory_.basic().width.setMax(kWidth); | 597 constraint_factory_.Reset(); |
| 626 auto result = SelectSettings(); | 598 const int kMaxWidth = kDefaultScreenCastWidth - 100; |
| 627 EXPECT_TRUE(result.HasValue()); | 599 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 628 // kWidth is greater that the default, so expect the default. | 600 auto result = SelectSettings(); |
| 629 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 601 EXPECT_TRUE(result.HasValue()); |
| 630 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 602 // kSmallWidth is less that the default, so expect kSmallWidth. |
| 631 CheckNonResolutionDefaults(result); | 603 EXPECT_EQ(kMaxWidth, result.Width()); |
| 632 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 604 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 633 result.track_adapter_settings().min_aspect_ratio); | 605 result.Height()); |
| 634 EXPECT_EQ(static_cast<double>(kWidth) / kMinScreenCastDimension, | 606 CheckNonResolutionDefaults(result); |
| 635 result.track_adapter_settings().max_aspect_ratio); | 607 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 636 CheckTrackAdapterSettingsEqualsFormat(result); | 608 result.track_adapter_settings().min_aspect_ratio); |
| 609 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 610 result.track_adapter_settings().max_aspect_ratio); |
| 611 CheckTrackAdapterSettingsEqualsFormat(result); |
| 612 } |
| 637 | 613 |
| 638 const int kSmallWidth = 100; | 614 // kMaxWidth greater than the default. |
| 639 constraint_factory_.basic().width.setMax(kSmallWidth); | 615 { |
| 640 result = SelectSettings(); | 616 constraint_factory_.Reset(); |
| 641 EXPECT_TRUE(result.HasValue()); | 617 const int kMaxWidth = kDefaultScreenCastWidth + 100; |
| 642 // kSmallWidth is less that the default, so expect kSmallWidth. | 618 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 643 EXPECT_EQ(kSmallWidth, result.Width()); | 619 auto result = SelectSettings(); |
| 644 EXPECT_EQ(std::round(kSmallWidth / kDefaultScreenCastAspectRatio), | 620 EXPECT_TRUE(result.HasValue()); |
| 645 result.Height()); | 621 // kSmallWidth is less that the default, so expect kSmallWidth. |
| 646 CheckNonResolutionDefaults(result); | 622 EXPECT_EQ(kMaxWidth, result.Width()); |
| 647 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 623 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 648 result.track_adapter_settings().min_aspect_ratio); | 624 result.Height()); |
| 649 EXPECT_EQ(static_cast<double>(kSmallWidth) / kMinScreenCastDimension, | 625 CheckNonResolutionDefaults(result); |
| 650 result.track_adapter_settings().max_aspect_ratio); | 626 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 651 CheckTrackAdapterSettingsEqualsFormat(result); | 627 result.track_adapter_settings().min_aspect_ratio); |
| 628 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 629 result.track_adapter_settings().max_aspect_ratio); |
| 630 CheckTrackAdapterSettingsEqualsFormat(result); |
| 631 } |
| 632 |
| 633 // kMaxWidth greater than the maximum allowed (gets ignored). |
| 634 { |
| 635 constraint_factory_.Reset(); |
| 636 constraint_factory_.basic().width.setMax(kMaxScreenCastDimension + 100); |
| 637 auto result = SelectSettings(); |
| 638 EXPECT_TRUE(result.HasValue()); |
| 639 // kSmallWidth is less that the default, so expect kSmallWidth. |
| 640 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); |
| 641 EXPECT_EQ( |
| 642 std::round(kDefaultScreenCastWidth / kDefaultScreenCastAspectRatio), |
| 643 result.Height()); |
| 644 CheckNonResolutionDefaults(result); |
| 645 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 646 result.track_adapter_settings().min_aspect_ratio); |
| 647 EXPECT_EQ( |
| 648 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, |
| 649 result.track_adapter_settings().max_aspect_ratio); |
| 650 CheckTrackAdapterSettingsEqualsFormat(result); |
| 651 } |
| 652 } | 652 } |
| 653 | 653 |
| 654 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryWidthRange) { | 654 TEST_F(MediaStreamConstraintsUtilVideoContentTest, MandatoryWidthRange) { |
| 655 constraint_factory_.Reset(); | 655 // The whole range is less than the default. |
| 656 { | 656 { |
| 657 const int kMinWidth = 300; | 657 constraint_factory_.Reset(); |
| 658 const int kMaxWidth = 1000; | 658 const int kMinWidth = kDefaultScreenCastWidth - 200; |
| 659 const int kMaxWidth = kDefaultScreenCastWidth - 100; |
| 659 constraint_factory_.basic().width.setMin(kMinWidth); | 660 constraint_factory_.basic().width.setMin(kMinWidth); |
| 660 constraint_factory_.basic().width.setMax(kMaxWidth); | 661 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 661 auto result = SelectSettings(); | 662 auto result = SelectSettings(); |
| 662 EXPECT_TRUE(result.HasValue()); | 663 EXPECT_TRUE(result.HasValue()); |
| 663 // The range includes the default, so expect the default. | 664 EXPECT_EQ(kMaxWidth, result.Width()); |
| 664 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 665 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 665 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 666 result.Height()); |
| 666 CheckNonResolutionDefaults(result); | 667 CheckNonResolutionDefaults(result); |
| 667 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, | 668 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, |
| 668 result.track_adapter_settings().min_aspect_ratio); | 669 result.track_adapter_settings().min_aspect_ratio); |
| 669 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, | 670 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 670 result.track_adapter_settings().max_aspect_ratio); | 671 result.track_adapter_settings().max_aspect_ratio); |
| 671 CheckTrackAdapterSettingsEqualsFormat(result); | 672 CheckTrackAdapterSettingsEqualsFormat(result); |
| 672 } | 673 } |
| 673 | 674 |
| 675 // The range includes the default. |
| 674 { | 676 { |
| 675 const int kMinWidth = 900; | 677 constraint_factory_.Reset(); |
| 676 const int kMaxWidth = 1000; | 678 const int kMinWidth = kDefaultScreenCastWidth - 100; |
| 679 const int kMaxWidth = kDefaultScreenCastWidth + 100; |
| 677 constraint_factory_.basic().width.setMin(kMinWidth); | 680 constraint_factory_.basic().width.setMin(kMinWidth); |
| 678 constraint_factory_.basic().width.setMax(kMaxWidth); | 681 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 679 auto result = SelectSettings(); | 682 auto result = SelectSettings(); |
| 680 EXPECT_TRUE(result.HasValue()); | 683 EXPECT_TRUE(result.HasValue()); |
| 681 // The whole range is greater than the default, so expect the range minimum. | 684 EXPECT_EQ(kMaxWidth, result.Width()); |
| 682 EXPECT_EQ(kMinWidth, result.Width()); | 685 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 683 EXPECT_EQ(std::round(kMinWidth / kDefaultScreenCastAspectRatio), | |
| 684 result.Height()); | 686 result.Height()); |
| 685 CheckNonResolutionDefaults(result); | 687 CheckNonResolutionDefaults(result); |
| 686 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, | 688 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, |
| 687 result.track_adapter_settings().min_aspect_ratio); | 689 result.track_adapter_settings().min_aspect_ratio); |
| 688 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, | 690 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 689 result.track_adapter_settings().max_aspect_ratio); | 691 result.track_adapter_settings().max_aspect_ratio); |
| 690 CheckTrackAdapterSettingsEqualsFormat(result); | 692 CheckTrackAdapterSettingsEqualsFormat(result); |
| 691 } | 693 } |
| 692 | 694 |
| 695 // The whole range is greater than the default. |
| 693 { | 696 { |
| 694 const int kMinWidth = 300; | 697 constraint_factory_.Reset(); |
| 695 const int kMaxWidth = 400; | 698 const int kMinWidth = kDefaultScreenCastWidth + 100; |
| 699 const int kMaxWidth = kDefaultScreenCastWidth + 200; |
| 696 constraint_factory_.basic().width.setMin(kMinWidth); | 700 constraint_factory_.basic().width.setMin(kMinWidth); |
| 697 constraint_factory_.basic().width.setMax(kMaxWidth); | 701 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 698 auto result = SelectSettings(); | 702 auto result = SelectSettings(); |
| 699 EXPECT_TRUE(result.HasValue()); | 703 EXPECT_TRUE(result.HasValue()); |
| 700 // The whole range is less than the default, so expect the range maximum. | |
| 701 EXPECT_EQ(kMaxWidth, result.Width()); | 704 EXPECT_EQ(kMaxWidth, result.Width()); |
| 702 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), | 705 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 703 result.Height()); | 706 result.Height()); |
| 704 CheckNonResolutionDefaults(result); | 707 CheckNonResolutionDefaults(result); |
| 705 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, | 708 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, |
| 706 result.track_adapter_settings().min_aspect_ratio); | 709 result.track_adapter_settings().min_aspect_ratio); |
| 707 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, | 710 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 708 result.track_adapter_settings().max_aspect_ratio); | 711 result.track_adapter_settings().max_aspect_ratio); |
| 709 CheckTrackAdapterSettingsEqualsFormat(result); | 712 CheckTrackAdapterSettingsEqualsFormat(result); |
| 710 } | 713 } |
| 711 } | 714 } |
| 712 | 715 |
| 713 TEST_F(MediaStreamConstraintsUtilVideoContentTest, IdealWidth) { | 716 TEST_F(MediaStreamConstraintsUtilVideoContentTest, IdealWidth) { |
| 714 // Unconstrained | 717 // Unconstrained |
| 715 { | 718 { |
| 716 constraint_factory_.Reset(); | 719 constraint_factory_.Reset(); |
| 717 const int kIdealWidth = 1000; | 720 const int kIdealWidth = 1000; |
| 718 constraint_factory_.basic().width.setIdeal(kIdealWidth); | 721 constraint_factory_.basic().width.setIdeal(kIdealWidth); |
| 719 auto result = SelectSettings(); | 722 auto result = SelectSettings(); |
| 720 EXPECT_TRUE(result.HasValue()); | 723 EXPECT_TRUE(result.HasValue()); |
| 721 EXPECT_EQ(kIdealWidth, result.Width()); | 724 EXPECT_EQ(kIdealWidth, result.Width()); |
| 722 // When ideal width is given, the algorithm returns a height that is closest | 725 // When ideal width is given, the algorithm returns a height that is closest |
| 723 // to width / kDefaultAspectRatio. | 726 // to width / kDefaultScreenCastAspectRatio. |
| 724 EXPECT_EQ(std::round(kIdealWidth / kDefaultScreenCastAspectRatio), | 727 EXPECT_EQ(std::round(kIdealWidth / kDefaultScreenCastAspectRatio), |
| 725 result.Height()); | 728 result.Height()); |
| 726 CheckNonResolutionDefaults(result); | 729 CheckNonResolutionDefaults(result); |
| 727 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); | 730 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); |
| 728 } | 731 } |
| 729 | 732 |
| 730 // Ideal greater than maximum. | 733 // Ideal greater than maximum. |
| 731 { | 734 { |
| 732 constraint_factory_.Reset(); | 735 constraint_factory_.Reset(); |
| 733 const int kIdealWidth = 1000; | 736 const int kIdealWidth = 1000; |
| 734 const int kMaxWidth = 800; | 737 const int kMaxWidth = 800; |
| 735 constraint_factory_.basic().width.setIdeal(kIdealWidth); | 738 constraint_factory_.basic().width.setIdeal(kIdealWidth); |
| 736 constraint_factory_.basic().width.setMax(kMaxWidth); | 739 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 737 auto result = SelectSettings(); | 740 auto result = SelectSettings(); |
| 738 EXPECT_TRUE(result.HasValue()); | 741 EXPECT_TRUE(result.HasValue()); |
| 739 EXPECT_EQ(kMaxWidth, result.Width()); | 742 EXPECT_EQ(kMaxWidth, result.Width()); |
| 740 // Expect closest to kMaxWidth / kDefaultAspectRatio. | 743 // Expect closest to kMaxWidth / kDefaultScreenCastAspectRatio. |
| 741 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), | 744 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 742 result.Height()); | 745 result.Height()); |
| 743 CheckNonResolutionDefaults(result); | 746 CheckNonResolutionDefaults(result); |
| 744 EXPECT_EQ(1.0 / kMaxScreenCastDimension, | 747 EXPECT_EQ(1.0 / kMaxScreenCastDimension, |
| 745 result.track_adapter_settings().min_aspect_ratio); | 748 result.track_adapter_settings().min_aspect_ratio); |
| 746 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, | 749 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 747 result.track_adapter_settings().max_aspect_ratio); | 750 result.track_adapter_settings().max_aspect_ratio); |
| 748 CheckTrackAdapterSettingsEqualsFormat(result); | 751 CheckTrackAdapterSettingsEqualsFormat(result); |
| 749 } | 752 } |
| 750 | 753 |
| 751 // Ideal less than minimum. | 754 // Ideal less than minimum. |
| 752 { | 755 { |
| 753 constraint_factory_.Reset(); | 756 constraint_factory_.Reset(); |
| 754 const int kIdealWidth = 1000; | 757 const int kIdealWidth = 1000; |
| 755 const int kMinWidth = 1200; | 758 const int kMinWidth = 1200; |
| 756 constraint_factory_.basic().width.setIdeal(kIdealWidth); | 759 constraint_factory_.basic().width.setIdeal(kIdealWidth); |
| 757 constraint_factory_.basic().width.setMin(kMinWidth); | 760 constraint_factory_.basic().width.setMin(kMinWidth); |
| 758 auto result = SelectSettings(); | 761 auto result = SelectSettings(); |
| 759 EXPECT_TRUE(result.HasValue()); | 762 EXPECT_TRUE(result.HasValue()); |
| 760 EXPECT_EQ(kMinWidth, result.Width()); | 763 EXPECT_EQ(kMinWidth, result.Width()); |
| 761 // Expect closest to kMinWidth / kDefaultAspectRatio. | 764 // Expect closest to kMinWidth / kDefaultScreenCastAspectRatio. |
| 762 EXPECT_EQ(std::round(kMinWidth / kDefaultScreenCastAspectRatio), | 765 EXPECT_EQ(std::round(kMinWidth / kDefaultScreenCastAspectRatio), |
| 763 result.Height()); | 766 result.Height()); |
| 764 CheckNonResolutionDefaults(result); | 767 CheckNonResolutionDefaults(result); |
| 765 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, | 768 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, |
| 766 result.track_adapter_settings().min_aspect_ratio); | 769 result.track_adapter_settings().min_aspect_ratio); |
| 767 EXPECT_EQ( | 770 EXPECT_EQ( |
| 768 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, | 771 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, |
| 769 result.track_adapter_settings().max_aspect_ratio); | 772 result.track_adapter_settings().max_aspect_ratio); |
| 770 CheckTrackAdapterSettingsEqualsFormat(result); | 773 CheckTrackAdapterSettingsEqualsFormat(result); |
| 771 } | 774 } |
| 772 | 775 |
| 773 // Ideal intersects a box. | 776 // Ideal intersects a box. |
| 774 { | 777 { |
| 775 constraint_factory_.Reset(); | 778 constraint_factory_.Reset(); |
| 776 constraint_factory_.basic().width.setMin(500); | 779 constraint_factory_.basic().width.setMin(500); |
| 777 constraint_factory_.basic().width.setMax(1000); | 780 constraint_factory_.basic().width.setMax(1000); |
| 778 constraint_factory_.basic().height.setMin(100); | 781 constraint_factory_.basic().height.setMin(100); |
| 779 constraint_factory_.basic().height.setMax(500); | 782 constraint_factory_.basic().height.setMax(500); |
| 780 const int kIdealWidth = 750; | 783 const int kIdealWidth = 750; |
| 781 constraint_factory_.basic().width.setIdeal(kIdealWidth); | 784 constraint_factory_.basic().width.setIdeal(kIdealWidth); |
| 782 auto result = SelectSettings(); | 785 auto result = SelectSettings(); |
| 783 EXPECT_TRUE(result.HasValue()); | 786 EXPECT_TRUE(result.HasValue()); |
| 784 // Ideal width is included in the bounding box. | 787 // Ideal width is included in the bounding box. |
| 785 EXPECT_EQ(kIdealWidth, result.Width()); | 788 EXPECT_EQ(kIdealWidth, result.Width()); |
| 786 // Expect height closest to kIdealWidth / kDefaultAspectRatio, which is | 789 // Expect height closest to kIdealWidth / default aspect ratio. |
| 787 // outside the box. Closest is max height. | 790 double default_aspect_ratio = |
| 788 EXPECT_EQ(constraint_factory_.basic().height.max(), result.Height()); | 791 static_cast<double>(constraint_factory_.basic().width.max()) / |
| 792 constraint_factory_.basic().height.max(); |
| 793 EXPECT_EQ(std::round(kIdealWidth / default_aspect_ratio), result.Height()); |
| 789 CheckNonResolutionDefaults(result); | 794 CheckNonResolutionDefaults(result); |
| 790 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); | 795 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); |
| 791 EXPECT_EQ(1000.0 / 100.0, result.track_adapter_settings().max_aspect_ratio); | 796 EXPECT_EQ(1000.0 / 100.0, result.track_adapter_settings().max_aspect_ratio); |
| 792 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 793 | |
| 794 constraint_factory_.basic().height.setMin(1200); | |
| 795 constraint_factory_.basic().height.setMax(2000); | |
| 796 result = SelectSettings(); | |
| 797 EXPECT_TRUE(result.HasValue()); | |
| 798 EXPECT_EQ(kIdealWidth, result.Width()); | |
| 799 // kIdealWidth / kDefaultAspectRatio outside the box. Closest is | |
| 800 // min height. | |
| 801 EXPECT_EQ(constraint_factory_.basic().height.min(), result.Height()); | |
| 802 CheckNonResolutionDefaults(result); | |
| 803 EXPECT_EQ(500.0 / 2000.0, result.track_adapter_settings().min_aspect_ratio); | |
| 804 EXPECT_EQ(1000.0 / 1200.0, | |
| 805 result.track_adapter_settings().max_aspect_ratio); | |
| 806 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 807 | |
| 808 constraint_factory_.basic().height.setMin(100); | |
| 809 constraint_factory_.basic().height.setMax(500); | |
| 810 result = SelectSettings(); | |
| 811 EXPECT_TRUE(result.HasValue()); | |
| 812 EXPECT_EQ(kIdealWidth, result.Width()); | |
| 813 // kIdealWidth / kDefaultAspectRatio is outside the box. Closest is max | |
| 814 // height. | |
| 815 EXPECT_EQ(constraint_factory_.basic().height.max(), result.Height()); | |
| 816 CheckNonResolutionDefaults(result); | |
| 817 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); | |
| 818 EXPECT_EQ(1000.0 / 100.0, result.track_adapter_settings().max_aspect_ratio); | |
| 819 CheckTrackAdapterSettingsEqualsFormat(result); | 797 CheckTrackAdapterSettingsEqualsFormat(result); |
| 820 } | 798 } |
| 821 | 799 |
| 822 // Ideal outside the box, closest to the side coinciding with max width. | 800 // Ideal outside the box, closest to the side coinciding with max width. |
| 823 { | 801 { |
| 824 const int kMaxWidth = 1000; | 802 const int kMaxWidth = 1000; |
| 825 constraint_factory_.Reset(); | 803 constraint_factory_.Reset(); |
| 826 constraint_factory_.basic().width.setMin(500); | 804 constraint_factory_.basic().width.setMin(500); |
| 827 constraint_factory_.basic().width.setMax(kMaxWidth); | 805 constraint_factory_.basic().width.setMax(kMaxWidth); |
| 828 constraint_factory_.basic().height.setMin(100); | 806 constraint_factory_.basic().height.setMin(100); |
| 829 constraint_factory_.basic().height.setMax(500); | 807 constraint_factory_.basic().height.setMax(500); |
| 830 constraint_factory_.basic().width.setIdeal(1200); | 808 constraint_factory_.basic().width.setIdeal(1200); |
| 831 auto result = SelectSettings(); | 809 auto result = SelectSettings(); |
| 832 EXPECT_TRUE(result.HasValue()); | 810 EXPECT_TRUE(result.HasValue()); |
| 833 EXPECT_EQ(kMaxWidth, result.Width()); | 811 EXPECT_EQ(kMaxWidth, result.Width()); |
| 834 // kMaxWidth / kDefaultAspectRatio is outside the box. Closest is max | 812 // kMaxWidth / kDefaultScreenCastAspectRatio is outside the box. Closest is |
| 835 // height. | 813 // max height. |
| 836 EXPECT_EQ(constraint_factory_.basic().height.max(), result.Height()); | 814 EXPECT_EQ(constraint_factory_.basic().height.max(), result.Height()); |
| 837 CheckNonResolutionDefaults(result); | 815 CheckNonResolutionDefaults(result); |
| 838 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); | 816 EXPECT_EQ(500.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); |
| 839 EXPECT_EQ(static_cast<double>(kMaxWidth) / 100.0, | 817 EXPECT_EQ(static_cast<double>(kMaxWidth) / 100.0, |
| 840 result.track_adapter_settings().max_aspect_ratio); | 818 result.track_adapter_settings().max_aspect_ratio); |
| 841 CheckTrackAdapterSettingsEqualsFormat(result); | 819 CheckTrackAdapterSettingsEqualsFormat(result); |
| 842 | |
| 843 constraint_factory_.basic().height.setMin(1500); | |
| 844 constraint_factory_.basic().height.setMax(2000); | |
| 845 result = SelectSettings(); | |
| 846 EXPECT_TRUE(result.HasValue()); | |
| 847 EXPECT_EQ(kMaxWidth, result.Width()); | |
| 848 // kMaxWidth / kDefaultAspectRatio is outside the box. Closest is | |
| 849 // min height. | |
| 850 EXPECT_EQ(constraint_factory_.basic().height.min(), result.Height()); | |
| 851 CheckNonResolutionDefaults(result); | |
| 852 EXPECT_EQ(500.0 / 2000.0, result.track_adapter_settings().min_aspect_ratio); | |
| 853 EXPECT_EQ(static_cast<double>(kMaxWidth) / 1500.0, | |
| 854 result.track_adapter_settings().max_aspect_ratio); | |
| 855 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 856 | |
| 857 constraint_factory_.basic().height.setMin(100); | |
| 858 result = SelectSettings(); | |
| 859 EXPECT_TRUE(result.HasValue()); | |
| 860 EXPECT_EQ(kMaxWidth, result.Width()); | |
| 861 // kMaxWidth / kDefaultAspectRatio is within the height limits. | |
| 862 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), | |
| 863 result.Height()); | |
| 864 CheckNonResolutionDefaults(result); | |
| 865 EXPECT_EQ(500.0 / 2000.0, result.track_adapter_settings().min_aspect_ratio); | |
| 866 EXPECT_EQ(static_cast<double>(kMaxWidth) / 100.0, | |
| 867 result.track_adapter_settings().max_aspect_ratio); | |
| 868 CheckTrackAdapterSettingsEqualsFormat(result); | |
| 869 } | 820 } |
| 870 | 821 |
| 871 // Ideal outside the constrained set, closest to a single point. | 822 // Ideal outside the constrained set, closest to a single point. |
| 872 { | 823 { |
| 873 constraint_factory_.Reset(); | 824 constraint_factory_.Reset(); |
| 874 constraint_factory_.basic().width.setMin(100); | 825 constraint_factory_.basic().width.setMin(100); |
| 875 constraint_factory_.basic().width.setMax(500); | 826 constraint_factory_.basic().width.setMax(500); |
| 876 constraint_factory_.basic().height.setMin(100); | 827 constraint_factory_.basic().height.setMin(100); |
| 877 constraint_factory_.basic().height.setMax(500); | 828 constraint_factory_.basic().height.setMax(500); |
| 878 constraint_factory_.basic().aspectRatio.setMax(1.0); | 829 constraint_factory_.basic().aspectRatio.setMax(1.0); |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1051 | 1002 |
| 1052 // Ideal greater than maximum. | 1003 // Ideal greater than maximum. |
| 1053 { | 1004 { |
| 1054 constraint_factory_.Reset(); | 1005 constraint_factory_.Reset(); |
| 1055 const double kIdealAspectRatio = 2.0; | 1006 const double kIdealAspectRatio = 2.0; |
| 1056 const double kMaxAspectRatio = 1.5; | 1007 const double kMaxAspectRatio = 1.5; |
| 1057 constraint_factory_.basic().aspectRatio.setIdeal(kIdealAspectRatio); | 1008 constraint_factory_.basic().aspectRatio.setIdeal(kIdealAspectRatio); |
| 1058 constraint_factory_.basic().aspectRatio.setMax(kMaxAspectRatio); | 1009 constraint_factory_.basic().aspectRatio.setMax(kMaxAspectRatio); |
| 1059 auto result = SelectSettings(); | 1010 auto result = SelectSettings(); |
| 1060 EXPECT_TRUE(result.HasValue()); | 1011 EXPECT_TRUE(result.HasValue()); |
| 1061 // Ideal height is greater than the maximum, expect maximum. | 1012 // Ideal aspect ratio is greater than the maximum, expect maximum. |
| 1062 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 1013 EXPECT_EQ(std::round(kDefaultScreenCastWidth / kMaxAspectRatio), |
| 1063 EXPECT_EQ(std::round(kDefaultScreenCastHeight * kMaxAspectRatio), | 1014 result.Height()); |
| 1064 result.Width()); | 1015 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); |
| 1065 CheckNonResolutionDefaults(result); | 1016 CheckNonResolutionDefaults(result); |
| 1066 EXPECT_EQ( | 1017 EXPECT_EQ( |
| 1067 static_cast<double>(kMinScreenCastDimension) / kMaxScreenCastDimension, | 1018 static_cast<double>(kMinScreenCastDimension) / kMaxScreenCastDimension, |
| 1068 result.track_adapter_settings().min_aspect_ratio); | 1019 result.track_adapter_settings().min_aspect_ratio); |
| 1069 EXPECT_EQ(kMaxAspectRatio, | 1020 EXPECT_EQ(kMaxAspectRatio, |
| 1070 result.track_adapter_settings().max_aspect_ratio); | 1021 result.track_adapter_settings().max_aspect_ratio); |
| 1071 CheckTrackAdapterSettingsEqualsFormat(result); | 1022 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1072 } | 1023 } |
| 1073 | 1024 |
| 1074 // Ideal less than minimum. | 1025 // Ideal less than minimum. |
| 1075 { | 1026 { |
| 1076 constraint_factory_.Reset(); | 1027 constraint_factory_.Reset(); |
| 1077 const double kIdealAspectRatio = 1.0; | 1028 const double kIdealAspectRatio = 1.0; |
| 1078 const double kMinAspectRatio = 1.5; | 1029 const double kMinAspectRatio = 1.5; |
| 1079 constraint_factory_.basic().aspectRatio.setIdeal(kIdealAspectRatio); | 1030 constraint_factory_.basic().aspectRatio.setIdeal(kIdealAspectRatio); |
| 1080 constraint_factory_.basic().aspectRatio.setMin(kMinAspectRatio); | 1031 constraint_factory_.basic().aspectRatio.setMin(kMinAspectRatio); |
| 1081 auto result = SelectSettings(); | 1032 auto result = SelectSettings(); |
| 1082 EXPECT_TRUE(result.HasValue()); | 1033 EXPECT_TRUE(result.HasValue()); |
| 1083 // Ideal height is greater than the maximum, expect maximum. | 1034 // Ideal aspect ratio is less than the maximum, expect minimum. |
| 1084 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 1035 EXPECT_EQ(std::round(kDefaultScreenCastWidth / kMinAspectRatio), |
| 1085 EXPECT_EQ(std::round(kDefaultScreenCastHeight * kMinAspectRatio), | 1036 result.Height()); |
| 1086 result.Width()); | 1037 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); |
| 1087 CheckNonResolutionDefaults(result); | 1038 CheckNonResolutionDefaults(result); |
| 1088 EXPECT_EQ(kMinAspectRatio, | 1039 EXPECT_EQ(kMinAspectRatio, |
| 1089 result.track_adapter_settings().min_aspect_ratio); | 1040 result.track_adapter_settings().min_aspect_ratio); |
| 1090 EXPECT_EQ( | 1041 EXPECT_EQ( |
| 1091 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, | 1042 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, |
| 1092 result.track_adapter_settings().max_aspect_ratio); | 1043 result.track_adapter_settings().max_aspect_ratio); |
| 1093 CheckTrackAdapterSettingsEqualsFormat(result); | 1044 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1094 } | 1045 } |
| 1095 | 1046 |
| 1096 // Ideal intersects a box. | 1047 // Ideal intersects a box. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1115 EXPECT_EQ(100.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); | 1066 EXPECT_EQ(100.0 / 500.0, result.track_adapter_settings().min_aspect_ratio); |
| 1116 EXPECT_EQ(500.0 / 100.0, result.track_adapter_settings().max_aspect_ratio); | 1067 EXPECT_EQ(500.0 / 100.0, result.track_adapter_settings().max_aspect_ratio); |
| 1117 CheckTrackAdapterSettingsEqualsFormat(result); | 1068 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1118 | 1069 |
| 1119 constraint_factory_.basic().height.setMin(1000); | 1070 constraint_factory_.basic().height.setMin(1000); |
| 1120 constraint_factory_.basic().height.setMax(5000); | 1071 constraint_factory_.basic().height.setMax(5000); |
| 1121 constraint_factory_.basic().width.setMin(1000); | 1072 constraint_factory_.basic().width.setMin(1000); |
| 1122 constraint_factory_.basic().width.setMax(5000); | 1073 constraint_factory_.basic().width.setMax(5000); |
| 1123 result = SelectSettings(); | 1074 result = SelectSettings(); |
| 1124 EXPECT_TRUE(result.HasValue()); | 1075 EXPECT_TRUE(result.HasValue()); |
| 1125 // Ideal aspect-ratio is included in the bounding box, with the value | 1076 // Ideal aspect-ratio is included in the bounding box. |
| 1126 // closest to a standard width or height and largest area being the cut with | 1077 EXPECT_EQ( |
| 1127 // the minimum height. | 1078 std::round(constraint_factory_.basic().width.max() / kIdealAspectRatio), |
| 1128 EXPECT_EQ(constraint_factory_.basic().height.min(), result.Height()); | 1079 result.Height()); |
| 1129 EXPECT_EQ(std::round(constraint_factory_.basic().height.min() * | 1080 EXPECT_EQ(constraint_factory_.basic().width.max(), result.Width()); |
| 1130 kIdealAspectRatio), | |
| 1131 result.Width()); | |
| 1132 CheckNonResolutionDefaults(result); | 1081 CheckNonResolutionDefaults(result); |
| 1133 EXPECT_EQ(1000.0 / 5000.0, | 1082 EXPECT_EQ(1000.0 / 5000.0, |
| 1134 result.track_adapter_settings().min_aspect_ratio); | 1083 result.track_adapter_settings().min_aspect_ratio); |
| 1135 EXPECT_EQ(5000.0 / 1000.0, | 1084 EXPECT_EQ(5000.0 / 1000.0, |
| 1136 result.track_adapter_settings().max_aspect_ratio); | 1085 result.track_adapter_settings().max_aspect_ratio); |
| 1137 CheckTrackAdapterSettingsEqualsFormat(result); | 1086 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1138 | 1087 |
| 1088 constraint_factory_.Reset(); |
| 1089 constraint_factory_.basic().aspectRatio.setIdeal(kIdealAspectRatio); |
| 1139 constraint_factory_.basic().height.setMin(250); | 1090 constraint_factory_.basic().height.setMin(250); |
| 1140 constraint_factory_.basic().height.setMax(5000); | |
| 1141 constraint_factory_.basic().width.setMin(250); | 1091 constraint_factory_.basic().width.setMin(250); |
| 1142 constraint_factory_.basic().width.setMax(5000); | |
| 1143 result = SelectSettings(); | 1092 result = SelectSettings(); |
| 1144 EXPECT_TRUE(result.HasValue()); | 1093 EXPECT_TRUE(result.HasValue()); |
| 1145 // Ideal aspect-ratio and default width and height are included in the | 1094 // Ideal aspect-ratio is included in the bounding box. Preserving default |
| 1146 // bounding box. Preserving default height leads to larger area than | 1095 // height leads to larger area than preserving default width. |
| 1147 // preserving default width. | |
| 1148 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 1096 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); |
| 1149 EXPECT_EQ(kDefaultScreenCastHeight * kIdealAspectRatio, result.Width()); | 1097 EXPECT_EQ(kDefaultScreenCastHeight * kIdealAspectRatio, result.Width()); |
| 1150 CheckNonResolutionDefaults(result); | 1098 CheckNonResolutionDefaults(result); |
| 1151 EXPECT_EQ(250.0 / 5000.0, result.track_adapter_settings().min_aspect_ratio); | 1099 EXPECT_EQ(250.0 / kMaxScreenCastDimension, |
| 1152 EXPECT_EQ(5000.0 / 250.0, result.track_adapter_settings().max_aspect_ratio); | 1100 result.track_adapter_settings().min_aspect_ratio); |
| 1101 EXPECT_EQ(kMaxScreenCastDimension / 250.0, |
| 1102 result.track_adapter_settings().max_aspect_ratio); |
| 1153 CheckTrackAdapterSettingsEqualsFormat(result); | 1103 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1154 } | 1104 } |
| 1155 | 1105 |
| 1156 // Ideal outside the constrained area, closest to min or max aspect ratio. | 1106 // Ideal outside the constrained area, closest to min or max aspect ratio. |
| 1157 { | 1107 { |
| 1158 const double kMinAspectRatio = 0.5; | 1108 const double kMinAspectRatio = 0.5; |
| 1159 const double kMaxAspectRatio = 2.0; | 1109 const double kMaxAspectRatio = 2.0; |
| 1160 constraint_factory_.Reset(); | 1110 constraint_factory_.Reset(); |
| 1161 constraint_factory_.basic().height.setMin(100); | 1111 constraint_factory_.basic().height.setMin(100); |
| 1162 constraint_factory_.basic().height.setMax(500); | 1112 constraint_factory_.basic().height.setMax(500); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1189 result.Width()); | 1139 result.Width()); |
| 1190 CheckNonResolutionDefaults(result); | 1140 CheckNonResolutionDefaults(result); |
| 1191 EXPECT_EQ(kMinAspectRatio, | 1141 EXPECT_EQ(kMinAspectRatio, |
| 1192 result.track_adapter_settings().min_aspect_ratio); | 1142 result.track_adapter_settings().min_aspect_ratio); |
| 1193 EXPECT_EQ(kMaxAspectRatio, | 1143 EXPECT_EQ(kMaxAspectRatio, |
| 1194 result.track_adapter_settings().max_aspect_ratio); | 1144 result.track_adapter_settings().max_aspect_ratio); |
| 1195 CheckTrackAdapterSettingsEqualsFormat(result); | 1145 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1196 | 1146 |
| 1197 // Use a box that is bigger and further from the origin to force closeness | 1147 // Use a box that is bigger and further from the origin to force closeness |
| 1198 // to a different default dimension. | 1148 // to a different default dimension. |
| 1199 constraint_factory_.basic().height.setMin(1000); | 1149 constraint_factory_.Reset(); |
| 1200 constraint_factory_.basic().height.setMax(5000); | 1150 constraint_factory_.basic().aspectRatio.setMin(kMinAspectRatio); |
| 1201 constraint_factory_.basic().width.setMin(1000); | 1151 constraint_factory_.basic().aspectRatio.setMax(kMaxAspectRatio); |
| 1202 constraint_factory_.basic().width.setMax(5000); | 1152 constraint_factory_.basic().height.setMin(3000); |
| 1153 constraint_factory_.basic().width.setMin(3000); |
| 1203 constraint_factory_.basic().aspectRatio.setIdeal(3.0); | 1154 constraint_factory_.basic().aspectRatio.setIdeal(3.0); |
| 1204 result = SelectSettings(); | 1155 result = SelectSettings(); |
| 1205 EXPECT_TRUE(result.HasValue()); | 1156 EXPECT_TRUE(result.HasValue()); |
| 1206 // Ideal is closest to kMaxAspectRatio. | 1157 // Ideal is closest to kMaxAspectRatio. |
| 1207 EXPECT_EQ(constraint_factory_.basic().height.min(), result.Height()); | 1158 EXPECT_EQ(constraint_factory_.basic().height.min(), result.Height()); |
| 1208 EXPECT_EQ( | 1159 EXPECT_EQ( |
| 1209 std::round(constraint_factory_.basic().height.min() * kMaxAspectRatio), | 1160 std::round(constraint_factory_.basic().height.min() * kMaxAspectRatio), |
| 1210 result.Width()); | 1161 result.Width()); |
| 1211 CheckNonResolutionDefaults(result); | 1162 CheckNonResolutionDefaults(result); |
| 1212 EXPECT_EQ(kMinAspectRatio, | 1163 EXPECT_EQ(kMinAspectRatio, |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1593 } | 1544 } |
| 1594 | 1545 |
| 1595 TEST_F(MediaStreamConstraintsUtilVideoContentTest, AdvancedNoiseReduction) { | 1546 TEST_F(MediaStreamConstraintsUtilVideoContentTest, AdvancedNoiseReduction) { |
| 1596 constraint_factory_.Reset(); | 1547 constraint_factory_.Reset(); |
| 1597 blink::WebMediaTrackConstraintSet& advanced1 = | 1548 blink::WebMediaTrackConstraintSet& advanced1 = |
| 1598 constraint_factory_.AddAdvanced(); | 1549 constraint_factory_.AddAdvanced(); |
| 1599 advanced1.width.setMin(640); | 1550 advanced1.width.setMin(640); |
| 1600 advanced1.height.setMin(480); | 1551 advanced1.height.setMin(480); |
| 1601 blink::WebMediaTrackConstraintSet& advanced2 = | 1552 blink::WebMediaTrackConstraintSet& advanced2 = |
| 1602 constraint_factory_.AddAdvanced(); | 1553 constraint_factory_.AddAdvanced(); |
| 1603 advanced2.width.setMin(1920); | 1554 const int kMinWidth = 4000; |
| 1604 advanced2.height.setMin(1080); | 1555 const int kMinHeight = 2000; |
| 1556 advanced2.width.setMin(kMinWidth); |
| 1557 advanced2.height.setMin(kMinHeight); |
| 1605 advanced2.googNoiseReduction.setExact(false); | 1558 advanced2.googNoiseReduction.setExact(false); |
| 1606 auto result = SelectSettings(); | 1559 auto result = SelectSettings(); |
| 1607 EXPECT_TRUE(result.HasValue()); | 1560 EXPECT_TRUE(result.HasValue()); |
| 1608 EXPECT_EQ(1920, result.Width()); | 1561 EXPECT_EQ(kMinWidth, result.Width()); |
| 1609 // Preserves default aspect ratio. | 1562 // Preserves default aspect ratio. |
| 1610 EXPECT_EQ(static_cast<int>( | 1563 EXPECT_EQ(static_cast<int>( |
| 1611 std::round(result.Width() / kDefaultScreenCastAspectRatio)), | 1564 std::round(result.Width() / kDefaultScreenCastAspectRatio)), |
| 1612 result.Height()); | 1565 result.Height()); |
| 1613 EXPECT_TRUE(result.noise_reduction() && !*result.noise_reduction()); | 1566 EXPECT_TRUE(result.noise_reduction() && !*result.noise_reduction()); |
| 1614 EXPECT_EQ(1920.0 / static_cast<double>(kMaxScreenCastDimension), | 1567 EXPECT_EQ(kMinWidth / static_cast<double>(kMaxScreenCastDimension), |
| 1615 result.track_adapter_settings().min_aspect_ratio); | 1568 result.track_adapter_settings().min_aspect_ratio); |
| 1616 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / 1080.0, | 1569 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 1617 result.track_adapter_settings().max_aspect_ratio); | 1570 result.track_adapter_settings().max_aspect_ratio); |
| 1618 CheckTrackAdapterSettingsEqualsFormat(result); | 1571 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1619 } | 1572 } |
| 1620 | 1573 |
| 1621 // The "AdvancedContradictory" tests check that advanced constraint sets that | 1574 // The "AdvancedContradictory" tests check that advanced constraint sets that |
| 1622 // contradict previous constraint sets are ignored. | 1575 // contradict previous constraint sets are ignored. |
| 1623 TEST_F(MediaStreamConstraintsUtilVideoContentTest, | 1576 TEST_F(MediaStreamConstraintsUtilVideoContentTest, |
| 1624 AdvancedContradictoryNoiseReduction) { | 1577 AdvancedContradictoryNoiseReduction) { |
| 1625 constraint_factory_.Reset(); | 1578 constraint_factory_.Reset(); |
| 1626 blink::WebMediaTrackConstraintSet& advanced1 = | 1579 blink::WebMediaTrackConstraintSet& advanced1 = |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1684 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); | 1637 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); |
| 1685 EXPECT_EQ(kMinScreenCastDimension / 480.0, | 1638 EXPECT_EQ(kMinScreenCastDimension / 480.0, |
| 1686 result.track_adapter_settings().min_aspect_ratio); | 1639 result.track_adapter_settings().min_aspect_ratio); |
| 1687 EXPECT_EQ(640.0 / kMinScreenCastDimension, | 1640 EXPECT_EQ(640.0 / kMinScreenCastDimension, |
| 1688 result.track_adapter_settings().max_aspect_ratio); | 1641 result.track_adapter_settings().max_aspect_ratio); |
| 1689 CheckTrackAdapterSettingsEqualsFormat(result); | 1642 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1690 } | 1643 } |
| 1691 | 1644 |
| 1692 TEST_F(MediaStreamConstraintsUtilVideoContentTest, | 1645 TEST_F(MediaStreamConstraintsUtilVideoContentTest, |
| 1693 AdvancedContradictoryMinMaxResolutionFrameRate) { | 1646 AdvancedContradictoryMinMaxResolutionFrameRate) { |
| 1647 const int kMinHeight = 2600; |
| 1648 const int kMinWidth = 2800; |
| 1694 constraint_factory_.Reset(); | 1649 constraint_factory_.Reset(); |
| 1695 blink::WebMediaTrackConstraintSet& advanced1 = | 1650 blink::WebMediaTrackConstraintSet& advanced1 = |
| 1696 constraint_factory_.AddAdvanced(); | 1651 constraint_factory_.AddAdvanced(); |
| 1697 advanced1.width.setMin(800); | 1652 advanced1.width.setMin(kMinWidth); |
| 1698 advanced1.height.setMin(600); | 1653 advanced1.height.setMin(kMinHeight); |
| 1699 blink::WebMediaTrackConstraintSet& advanced2 = | 1654 blink::WebMediaTrackConstraintSet& advanced2 = |
| 1700 constraint_factory_.AddAdvanced(); | 1655 constraint_factory_.AddAdvanced(); |
| 1701 advanced2.width.setMax(640); | 1656 advanced2.width.setMax(640); |
| 1702 advanced2.height.setMax(480); | 1657 advanced2.height.setMax(480); |
| 1703 advanced2.frameRate.setExact(60.0); | 1658 advanced2.frameRate.setExact(60.0); |
| 1704 auto result = SelectSettings(); | 1659 auto result = SelectSettings(); |
| 1705 EXPECT_TRUE(result.HasValue()); | 1660 EXPECT_TRUE(result.HasValue()); |
| 1706 EXPECT_EQ(800, result.Width()); | 1661 EXPECT_EQ(std::round(kMinHeight * kDefaultScreenCastAspectRatio), |
| 1707 EXPECT_EQ(600, result.Height()); | 1662 result.Width()); |
| 1663 EXPECT_EQ(kMinHeight, result.Height()); |
| 1708 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); | 1664 EXPECT_EQ(kDefaultScreenCastFrameRate, result.FrameRate()); |
| 1709 EXPECT_EQ(800.0 / kMaxScreenCastDimension, | 1665 EXPECT_EQ(static_cast<double>(kMinWidth) / kMaxScreenCastDimension, |
| 1710 result.track_adapter_settings().min_aspect_ratio); | 1666 result.track_adapter_settings().min_aspect_ratio); |
| 1711 EXPECT_EQ(kMaxScreenCastDimension / 600.0, | 1667 EXPECT_EQ(static_cast<double>(kMaxScreenCastDimension) / kMinHeight, |
| 1712 result.track_adapter_settings().max_aspect_ratio); | 1668 result.track_adapter_settings().max_aspect_ratio); |
| 1713 CheckTrackAdapterSettingsEqualsFormat(result); | 1669 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1714 } | 1670 } |
| 1715 | 1671 |
| 1716 TEST_F(MediaStreamConstraintsUtilVideoContentTest, | 1672 TEST_F(MediaStreamConstraintsUtilVideoContentTest, |
| 1717 AdvancedContradictoryExactAspectRatio) { | 1673 AdvancedContradictoryExactAspectRatio) { |
| 1718 constraint_factory_.Reset(); | 1674 constraint_factory_.Reset(); |
| 1719 blink::WebMediaTrackConstraintSet& advanced1 = | 1675 blink::WebMediaTrackConstraintSet& advanced1 = |
| 1720 constraint_factory_.AddAdvanced(); | 1676 constraint_factory_.AddAdvanced(); |
| 1721 advanced1.aspectRatio.setExact(10.0); | 1677 advanced1.aspectRatio.setExact(10.0); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1780 advanced2.frameRate.setMax(35.0); | 1736 advanced2.frameRate.setMax(35.0); |
| 1781 auto result = SelectSettings(); | 1737 auto result = SelectSettings(); |
| 1782 EXPECT_TRUE(result.HasValue()); | 1738 EXPECT_TRUE(result.HasValue()); |
| 1783 EXPECT_LE(40.0, result.FrameRate()); | 1739 EXPECT_LE(40.0, result.FrameRate()); |
| 1784 CheckNonFrameRateDefaults(result); | 1740 CheckNonFrameRateDefaults(result); |
| 1785 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); | 1741 CheckTrackAdapterSettingsEqualsFormatDefaultAspectRatio(result); |
| 1786 } | 1742 } |
| 1787 | 1743 |
| 1788 TEST_F(MediaStreamConstraintsUtilVideoContentTest, | 1744 TEST_F(MediaStreamConstraintsUtilVideoContentTest, |
| 1789 AdvancedContradictoryWidthFrameRate) { | 1745 AdvancedContradictoryWidthFrameRate) { |
| 1746 const int kMaxWidth = 1920; |
| 1790 constraint_factory_.Reset(); | 1747 constraint_factory_.Reset(); |
| 1791 blink::WebMediaTrackConstraintSet& advanced1 = | 1748 blink::WebMediaTrackConstraintSet& advanced1 = |
| 1792 constraint_factory_.AddAdvanced(); | 1749 constraint_factory_.AddAdvanced(); |
| 1793 advanced1.width.setMax(1920); | 1750 advanced1.width.setMax(kMaxWidth); |
| 1794 blink::WebMediaTrackConstraintSet& advanced2 = | 1751 blink::WebMediaTrackConstraintSet& advanced2 = |
| 1795 constraint_factory_.AddAdvanced(); | 1752 constraint_factory_.AddAdvanced(); |
| 1796 advanced2.width.setMin(2000); | 1753 advanced2.width.setMin(2000); |
| 1797 advanced2.frameRate.setExact(10.0); | 1754 advanced2.frameRate.setExact(10.0); |
| 1798 blink::WebMediaTrackConstraintSet& advanced3 = | 1755 blink::WebMediaTrackConstraintSet& advanced3 = |
| 1799 constraint_factory_.AddAdvanced(); | 1756 constraint_factory_.AddAdvanced(); |
| 1800 advanced3.frameRate.setExact(90.0); | 1757 advanced3.frameRate.setExact(90.0); |
| 1801 auto result = SelectSettings(); | 1758 auto result = SelectSettings(); |
| 1802 EXPECT_TRUE(result.HasValue()); | 1759 EXPECT_TRUE(result.HasValue()); |
| 1803 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 1760 EXPECT_EQ(kMaxWidth, result.Width()); |
| 1804 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 1761 EXPECT_EQ(std::round(kMaxWidth / kDefaultScreenCastAspectRatio), |
| 1762 result.Height()); |
| 1805 EXPECT_EQ(90.0, result.FrameRate()); | 1763 EXPECT_EQ(90.0, result.FrameRate()); |
| 1806 EXPECT_EQ( | 1764 EXPECT_EQ( |
| 1807 static_cast<double>(kMinScreenCastDimension) / kMaxScreenCastDimension, | 1765 static_cast<double>(kMinScreenCastDimension) / kMaxScreenCastDimension, |
| 1808 result.track_adapter_settings().min_aspect_ratio); | 1766 result.track_adapter_settings().min_aspect_ratio); |
| 1809 EXPECT_EQ(1920.0 / kMinScreenCastDimension, | 1767 EXPECT_EQ(static_cast<double>(kMaxWidth) / kMinScreenCastDimension, |
| 1810 result.track_adapter_settings().max_aspect_ratio); | 1768 result.track_adapter_settings().max_aspect_ratio); |
| 1811 CheckTrackAdapterSettingsEqualsFormat(result); | 1769 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1812 } | 1770 } |
| 1813 | 1771 |
| 1814 TEST_F(MediaStreamConstraintsUtilVideoContentTest, | 1772 TEST_F(MediaStreamConstraintsUtilVideoContentTest, |
| 1815 AdvancedContradictoryHeightFrameRate) { | 1773 AdvancedContradictoryHeightFrameRate) { |
| 1774 const int kMaxHeight = 2000; |
| 1816 constraint_factory_.Reset(); | 1775 constraint_factory_.Reset(); |
| 1817 blink::WebMediaTrackConstraintSet& advanced1 = | 1776 blink::WebMediaTrackConstraintSet& advanced1 = |
| 1818 constraint_factory_.AddAdvanced(); | 1777 constraint_factory_.AddAdvanced(); |
| 1819 advanced1.height.setMax(1080); | 1778 advanced1.height.setMax(kMaxHeight); |
| 1820 blink::WebMediaTrackConstraintSet& advanced2 = | 1779 blink::WebMediaTrackConstraintSet& advanced2 = |
| 1821 constraint_factory_.AddAdvanced(); | 1780 constraint_factory_.AddAdvanced(); |
| 1822 advanced2.height.setMin(1500); | 1781 advanced2.height.setMin(4500); |
| 1823 advanced2.frameRate.setExact(10.0); | 1782 advanced2.frameRate.setExact(10.0); |
| 1824 blink::WebMediaTrackConstraintSet& advanced3 = | 1783 blink::WebMediaTrackConstraintSet& advanced3 = |
| 1825 constraint_factory_.AddAdvanced(); | 1784 constraint_factory_.AddAdvanced(); |
| 1826 advanced3.frameRate.setExact(60.0); | 1785 advanced3.frameRate.setExact(60.0); |
| 1827 auto result = SelectSettings(); | 1786 auto result = SelectSettings(); |
| 1828 EXPECT_TRUE(result.HasValue()); | 1787 EXPECT_TRUE(result.HasValue()); |
| 1829 EXPECT_EQ(kDefaultScreenCastWidth, result.Width()); | 1788 EXPECT_EQ(kMaxHeight * kDefaultScreenCastAspectRatio, result.Width()); |
| 1830 EXPECT_EQ(kDefaultScreenCastHeight, result.Height()); | 1789 // Height defaults to explicitly given max constraint. |
| 1790 EXPECT_EQ(kMaxHeight, result.Height()); |
| 1831 EXPECT_EQ(60.0, result.FrameRate()); | 1791 EXPECT_EQ(60.0, result.FrameRate()); |
| 1832 EXPECT_EQ(static_cast<double>(kMinScreenCastDimension) / 1080.0, | 1792 EXPECT_EQ(static_cast<double>(kMinScreenCastDimension) / kMaxHeight, |
| 1833 result.track_adapter_settings().min_aspect_ratio); | 1793 result.track_adapter_settings().min_aspect_ratio); |
| 1834 EXPECT_EQ( | 1794 EXPECT_EQ( |
| 1835 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, | 1795 static_cast<double>(kMaxScreenCastDimension) / kMinScreenCastDimension, |
| 1836 result.track_adapter_settings().max_aspect_ratio); | 1796 result.track_adapter_settings().max_aspect_ratio); |
| 1837 CheckTrackAdapterSettingsEqualsFormat(result); | 1797 CheckTrackAdapterSettingsEqualsFormat(result); |
| 1838 } | 1798 } |
| 1839 | 1799 |
| 1840 TEST_F(MediaStreamConstraintsUtilVideoContentTest, AdvancedDeviceID) { | 1800 TEST_F(MediaStreamConstraintsUtilVideoContentTest, AdvancedDeviceID) { |
| 1841 const std::string kDeviceID1 = "fake_device_1"; | 1801 const std::string kDeviceID1 = "fake_device_1"; |
| 1842 const std::string kDeviceID2 = "fake_device_2"; | 1802 const std::string kDeviceID2 = "fake_device_2"; |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 // Exact aspect ratio prevents the resolution from being adjusted. | 1965 // Exact aspect ratio prevents the resolution from being adjusted. |
| 2006 EXPECT_EQ(media::RESOLUTION_POLICY_FIXED_RESOLUTION, | 1966 EXPECT_EQ(media::RESOLUTION_POLICY_FIXED_RESOLUTION, |
| 2007 result.ResolutionChangePolicy()); | 1967 result.ResolutionChangePolicy()); |
| 2008 EXPECT_EQ(1.32, result.track_adapter_settings().min_aspect_ratio); | 1968 EXPECT_EQ(1.32, result.track_adapter_settings().min_aspect_ratio); |
| 2009 EXPECT_EQ(1.32, result.track_adapter_settings().max_aspect_ratio); | 1969 EXPECT_EQ(1.32, result.track_adapter_settings().max_aspect_ratio); |
| 2010 CheckTrackAdapterSettingsEqualsFormat(result); | 1970 CheckTrackAdapterSettingsEqualsFormat(result); |
| 2011 } | 1971 } |
| 2012 } | 1972 } |
| 2013 | 1973 |
| 2014 } // namespace content | 1974 } // namespace content |
| OLD | NEW |