Index: webrtc/media/base/videoadapter_unittest.cc |
diff --git a/webrtc/media/base/videoadapter_unittest.cc b/webrtc/media/base/videoadapter_unittest.cc |
index 782cd2f74e5836e0fb5c31b9e9b3b2ebadf32830..0bfb6c650392e18b34fa97c67aa19000066ffdd6 100644 |
--- a/webrtc/media/base/videoadapter_unittest.cc |
+++ b/webrtc/media/base/videoadapter_unittest.cc |
@@ -57,10 +57,13 @@ class VideoAdapterTest : public testing::Test { |
explicit VideoCapturerListener(VideoAdapter* adapter) |
: video_adapter_(adapter), |
+ cropped_width_(0), |
+ cropped_height_(0), |
+ out_width_(0), |
+ out_height_(0), |
captured_frames_(0), |
dropped_frames_(0), |
- last_adapt_was_no_op_(false) { |
- } |
+ last_adapt_was_no_op_(false) {} |
void OnFrame(const webrtc::VideoFrame& frame) { |
rtc::CritScope lock(&crit_); |
@@ -693,8 +696,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(720, out_height_); |
// Adapt down one step. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(1280 * 720 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(1280 * 720 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -704,8 +707,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(540, out_height_); |
// Adapt down one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(960 * 540 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(960 * 540 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -715,8 +718,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(360, out_height_); |
// Adapt down one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -726,8 +729,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(270, out_height_); |
// Adapt up one step. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(480 * 270)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360), |
+ rtc::Optional<int>(960 * 540)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -737,8 +740,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(360, out_height_); |
// Adapt up one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(640 * 360)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(960 * 540), |
+ rtc::Optional<int>(1280 * 720)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -748,8 +751,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) { |
EXPECT_EQ(540, out_height_); |
// Adapt up one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(960 * 720)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(1280 * 720), |
+ rtc::Optional<int>(1920 * 1080)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -768,15 +771,16 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestMaxZero) { |
EXPECT_EQ(1280, out_width_); |
EXPECT_EQ(720, out_height_); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(0), rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), rtc::Optional<int>(0)); |
EXPECT_FALSE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
} |
TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 - 1), |
- rtc::Optional<int>()); |
+ // Large step down. |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -785,8 +789,9 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { |
EXPECT_EQ(480, out_width_); |
EXPECT_EQ(270, out_height_); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(960 * 720)); |
+ // Large step up. |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(1280 * 720), |
+ rtc::Optional<int>(1920 * 1080)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -797,8 +802,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) { |
} |
TEST_F(VideoAdapterTest, TestOnOutputFormatRequestCapsMaxResolution) { |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -837,8 +842,8 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestReset) { |
EXPECT_EQ(1280, out_width_); |
EXPECT_EQ(720, out_height_); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 - 1)); |
EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
@@ -871,8 +876,8 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { |
EXPECT_EQ(360, out_height_); |
// Adapt down one step. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 - 1)); |
// Expect cropping to 16:9 format and 3/4 scaling. |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
&cropped_width_, &cropped_height_, |
@@ -883,8 +888,8 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { |
EXPECT_EQ(270, out_height_); |
// Adapt down one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(480 * 270 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(480 * 270 - 1)); |
// Expect cropping to 16:9 format and 1/2 scaling. |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
&cropped_width_, &cropped_height_, |
@@ -895,8 +900,8 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { |
EXPECT_EQ(180, out_height_); |
// Adapt up one step. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(320 * 180)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(480 * 270), |
+ rtc::Optional<int>(640 * 360)); |
// Expect cropping to 16:9 format and 3/4 scaling. |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
&cropped_width_, &cropped_height_, |
@@ -907,8 +912,8 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { |
EXPECT_EQ(270, out_height_); |
// Adapt up one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(480 * 270)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360), |
+ rtc::Optional<int>(960 * 540)); |
// Expect cropping to 16:9 format and no scaling. |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
&cropped_width_, &cropped_height_, |
@@ -919,8 +924,8 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) { |
EXPECT_EQ(360, out_height_); |
// Try to adapt up one step more. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(640 * 360)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(960 * 540), |
+ rtc::Optional<int>(1280 * 720)); |
// Expect cropping to 16:9 format and no scaling. |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
&cropped_width_, &cropped_height_, |
@@ -935,8 +940,8 @@ TEST_F(VideoAdapterTest, TestCroppingOddResolution) { |
// Ask for 640x360 (16:9 aspect), with 3/16 scaling. |
adapter_.OnOutputFormatRequest( |
VideoFormat(640, 360, 0, FOURCC_I420)); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 360 * 3 / 16 * 3 / 16), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 360 * 3 / 16 * 3 / 16)); |
// Send 640x480 (4:3 aspect). |
EXPECT_TRUE(adapter_.AdaptFrameResolution(640, 480, 0, |
@@ -956,8 +961,8 @@ TEST_F(VideoAdapterTest, TestAdaptToVerySmallResolution) { |
const int w = 1920; |
const int h = 1080; |
adapter_.OnOutputFormatRequest(VideoFormat(w, h, 0, FOURCC_I420)); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(w * h * 1 / 16 * 1 / 16), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(w * h * 1 / 16 * 1 / 16)); |
// Send 1920x1080 (16:9 aspect). |
EXPECT_TRUE(adapter_.AdaptFrameResolution( |
@@ -971,8 +976,8 @@ TEST_F(VideoAdapterTest, TestAdaptToVerySmallResolution) { |
EXPECT_EQ(67, out_height_); |
// Adapt back up one step to 3/32. |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(w * h * 1 / 16 * 1 / 16)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(w * h * 3 / 32 * 3 / 32), |
+ rtc::Optional<int>(w * h * 1 / 8 * 1 / 8)); |
// Send 1920x1080 (16:9 aspect). |
EXPECT_TRUE(adapter_.AdaptFrameResolution( |
@@ -992,8 +997,8 @@ TEST_F(VideoAdapterTest, AdaptFrameResolutionDropWithResolutionRequest) { |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(), |
- rtc::Optional<int>(640 * 480)); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(960 * 540), |
+ rtc::Optional<int>()); |
// Still expect all frames to be dropped |
EXPECT_FALSE(adapter_.AdaptFrameResolution( |
@@ -1001,8 +1006,8 @@ TEST_F(VideoAdapterTest, AdaptFrameResolutionDropWithResolutionRequest) { |
&cropped_width_, &cropped_height_, |
&out_width_, &out_height_)); |
- adapter_.OnResolutionRequest(rtc::Optional<int>(640 * 480 - 1), |
- rtc::Optional<int>()); |
+ adapter_.OnResolutionRequest(rtc::Optional<int>(), |
+ rtc::Optional<int>(640 * 480 - 1)); |
// Still expect all frames to be dropped |
EXPECT_FALSE(adapter_.AdaptFrameResolution( |