webrtc_m130/modules/video_coding/codecs/vp9/svc_config_unittest.cc

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

65 lines
2.2 KiB
C++
Raw Normal View History

/*
* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <cstddef>
#include <vector>
#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
#include "modules/video_coding/codecs/vp9/svc_config.h"
#include "test/gtest.h"
namespace webrtc {
TEST(SvcConfig, NumSpatialLayers) {
const size_t max_num_spatial_layers = 6;
const size_t num_spatial_layers = 2;
std::vector<SpatialLayer> spatial_layers =
GetSvcConfig(kMinVp9SpatialLayerWidth << (num_spatial_layers - 1),
kMinVp9SpatialLayerHeight << (num_spatial_layers - 1), 30,
max_num_spatial_layers, 1, false);
EXPECT_EQ(spatial_layers.size(), num_spatial_layers);
}
TEST(SvcConfig, BitrateThresholds) {
const size_t num_spatial_layers = 3;
std::vector<SpatialLayer> spatial_layers =
GetSvcConfig(kMinVp9SpatialLayerWidth << (num_spatial_layers - 1),
kMinVp9SpatialLayerHeight << (num_spatial_layers - 1), 30,
num_spatial_layers, 1, false);
EXPECT_EQ(spatial_layers.size(), num_spatial_layers);
for (const SpatialLayer& layer : spatial_layers) {
EXPECT_LE(layer.minBitrate, layer.maxBitrate);
EXPECT_LE(layer.minBitrate, layer.targetBitrate);
EXPECT_LE(layer.targetBitrate, layer.maxBitrate);
}
}
TEST(SvcConfig, ScreenSharing) {
std::vector<SpatialLayer> spatial_layers =
GetSvcConfig(1920, 1080, 30, 3, 3, true);
EXPECT_EQ(spatial_layers.size(), 3UL);
for (size_t i = 0; i < 3; ++i) {
const SpatialLayer& layer = spatial_layers[i];
EXPECT_EQ(layer.width, 1920);
EXPECT_EQ(layer.height, 1080);
Revert "Reland "Tune vp9 screenshare bitrate and framerate of spatial layers"" This reverts commit 12abf671fd2028ca249e95bdf0456b15a48136f8. Reason for revert: Breaks downstream project. Original change's description: > Reland "Tune vp9 screenshare bitrate and framerate of spatial layers" > > This is a reland without any changes as it seems problems with webrtc-in-chrome importer were flakes or > caused by some issues within chrome codebase. > > Tune vp9 screenshare bitrate and framerate of spatial layers > > VP9 screenshare is not used currently, and with these values according > to local testing with screenshare_loopback, we get performance not worse than current vp8 settings for similar uplink and downlink values. > > Original Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126226 > > Bug: webrtc:10257 > Change-Id: Ie819d8bbab4f14877daac733d162e5ae7ebf2a8e > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126460 > Reviewed-by: Johannes Kron <kron@webrtc.org> > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#27036} TBR=ilnik@webrtc.org,jeroendb@webrtc.org,kron@webrtc.org Change-Id: I9ad9017b054213f931b3b39c641060d35565f17d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:10257 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126523 Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27037}
2019-03-08 14:25:42 +00:00
EXPECT_EQ(layer.maxFramerate, (i < 2) ? 5 : 30);
EXPECT_EQ(layer.numberOfTemporalLayers, 1);
EXPECT_LE(layer.minBitrate, layer.maxBitrate);
EXPECT_LE(layer.minBitrate, layer.targetBitrate);
EXPECT_LE(layer.targetBitrate, layer.maxBitrate);
}
}
} // namespace webrtc