| Index: webrtc/media/base/videoadapter_unittest.cc
|
| diff --git a/webrtc/media/base/videoadapter_unittest.cc b/webrtc/media/base/videoadapter_unittest.cc
|
| index 7f660ef37f2f3086ff438b782e04ff4e9dcceec5..fedd26488966a7a63bbeeeaea7184a3599ba0cc2 100644
|
| --- a/webrtc/media/base/videoadapter_unittest.cc
|
| +++ b/webrtc/media/base/videoadapter_unittest.cc
|
| @@ -577,9 +577,9 @@ TEST_F(VideoAdapterTest, TestOnOutputFormatRequest) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(640, cropped_width_);
|
| - EXPECT_EQ(400, cropped_height_);
|
| + EXPECT_EQ(384, cropped_height_);
|
| EXPECT_EQ(640 * 3 / 8, out_width_);
|
| - EXPECT_EQ(400 * 3 / 8, out_height_);
|
| + EXPECT_EQ(384 * 3 / 8, out_height_);
|
|
|
| // Switch back up. Expect adapt.
|
| format.width = 320;
|
| @@ -721,9 +721,9 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInSmallSteps) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(1280, cropped_width_);
|
| - EXPECT_EQ(720, cropped_height_);
|
| + EXPECT_EQ(704, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(264, out_height_);
|
|
|
| // Adapt up one step.
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(),
|
| @@ -781,9 +781,9 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestInLargeSteps) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(1280, cropped_width_);
|
| - EXPECT_EQ(720, cropped_height_);
|
| + EXPECT_EQ(704, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(264, out_height_);
|
|
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(),
|
| rtc::Optional<int>(960 * 720));
|
| @@ -803,9 +803,9 @@ TEST_F(VideoAdapterTest, TestOnOutputFormatRequestCapsMaxResolution) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(1280, cropped_width_);
|
| - EXPECT_EQ(720, cropped_height_);
|
| + EXPECT_EQ(704, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(264, out_height_);
|
|
|
| VideoFormat new_format(640, 360, 0, FOURCC_I420);
|
| adapter_.OnOutputFormatRequest(new_format);
|
| @@ -813,9 +813,9 @@ TEST_F(VideoAdapterTest, TestOnOutputFormatRequestCapsMaxResolution) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(1280, cropped_width_);
|
| - EXPECT_EQ(720, cropped_height_);
|
| + EXPECT_EQ(704, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(264, out_height_);
|
|
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(),
|
| rtc::Optional<int>(960 * 720));
|
| @@ -843,9 +843,9 @@ TEST_F(VideoAdapterTest, TestOnResolutionRequestReset) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(1280, cropped_width_);
|
| - EXPECT_EQ(720, cropped_height_);
|
| + EXPECT_EQ(704, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(264, out_height_);
|
|
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(), rtc::Optional<int>());
|
| EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0,
|
| @@ -878,9 +878,9 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(640, cropped_width_);
|
| - EXPECT_EQ(360, cropped_height_);
|
| + EXPECT_EQ(368, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(276, out_height_);
|
|
|
| // Adapt down one step more.
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(480 * 270 - 1),
|
| @@ -902,9 +902,9 @@ TEST_F(VideoAdapterTest, TestCroppingWithResolutionRequest) {
|
| &cropped_width_, &cropped_height_,
|
| &out_width_, &out_height_));
|
| EXPECT_EQ(640, cropped_width_);
|
| - EXPECT_EQ(360, cropped_height_);
|
| + EXPECT_EQ(368, cropped_height_);
|
| EXPECT_EQ(480, out_width_);
|
| - EXPECT_EQ(270, out_height_);
|
| + EXPECT_EQ(276, out_height_);
|
|
|
| // Adapt up one step more.
|
| adapter_.OnResolutionRequest(rtc::Optional<int>(),
|
| @@ -946,9 +946,45 @@ TEST_F(VideoAdapterTest, TestCroppingOddResolution) {
|
| // Instead of getting the exact aspect ratio with cropped resolution 640x360,
|
| // the resolution should be adjusted to get a perfect scale factor instead.
|
| EXPECT_EQ(640, cropped_width_);
|
| - EXPECT_EQ(368, cropped_height_);
|
| + EXPECT_EQ(384, cropped_height_);
|
| EXPECT_EQ(120, out_width_);
|
| - EXPECT_EQ(69, out_height_);
|
| + EXPECT_EQ(72, out_height_);
|
| }
|
|
|
| +TEST_F(VideoAdapterTest, TestScaleToReallySmall) {
|
| + // Ask for 960x720 (4:3 aspect) with 3/32 scaling.
|
| + const int w = 960;
|
| + const int h = 720;
|
| + adapter_.OnOutputFormatRequest(VideoFormat(w, h, 0, FOURCC_I420));
|
| + adapter_.OnResolutionRequest(rtc::Optional<int>(w * h * 3 / 32 * 3 / 32),
|
| + rtc::Optional<int>());
|
| +
|
| + // Send 1280x720 (16:9 aspect).
|
| + EXPECT_TRUE(adapter_.AdaptFrameResolution(1280, 720, 0, &cropped_width_,
|
| + &cropped_height_, &out_width_,
|
| + &out_height_));
|
| +
|
| + EXPECT_EQ(1024, cropped_width_);
|
| + EXPECT_EQ(640, cropped_height_);
|
| + EXPECT_EQ(96, out_width_);
|
| + EXPECT_EQ(60, out_height_);
|
| +}
|
| +
|
| +TEST_F(VideoAdapterTest, TestScaleFromReallyBig) {
|
| + // Ask for 7680x4320 (16:9 aspect) with 1/16 scaling.
|
| + const int w = 7680;
|
| + const int h = 4320;
|
| + adapter_.OnOutputFormatRequest(VideoFormat(w, h, 0, FOURCC_I420));
|
| + adapter_.OnResolutionRequest(rtc::Optional<int>(w * h * 1 / 16 * 1 / 16),
|
| + rtc::Optional<int>());
|
| +
|
| + // Send 8K (16:9 aspect).
|
| + EXPECT_TRUE(adapter_.AdaptFrameResolution(
|
| + w, h, 0, &cropped_width_, &cropped_height_, &out_width_, &out_height_));
|
| +
|
| + EXPECT_EQ(7680, cropped_width_);
|
| + EXPECT_EQ(4288, cropped_height_);
|
| + EXPECT_EQ(480, out_width_);
|
| + EXPECT_EQ(268, out_height_);
|
| +}
|
| } // namespace cricket
|
|
|