tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

video_bitrate_allocation_unittest.cc (2109B)


      1 /*
      2 *  Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #include "api/video/video_bitrate_allocation.h"
     12 
     13 #include <optional>
     14 #include <vector>
     15 
     16 #include "test/gtest.h"
     17 
     18 namespace webrtc {
     19 TEST(VideoBitrateAllocation, SimulcastTargetBitrate) {
     20  VideoBitrateAllocation bitrate;
     21  bitrate.SetBitrate(0, 0, 10000);
     22  bitrate.SetBitrate(0, 1, 20000);
     23  bitrate.SetBitrate(1, 0, 40000);
     24  bitrate.SetBitrate(1, 1, 80000);
     25 
     26  VideoBitrateAllocation layer0_bitrate;
     27  layer0_bitrate.SetBitrate(0, 0, 10000);
     28  layer0_bitrate.SetBitrate(0, 1, 20000);
     29 
     30  VideoBitrateAllocation layer1_bitrate;
     31  layer1_bitrate.SetBitrate(0, 0, 40000);
     32  layer1_bitrate.SetBitrate(0, 1, 80000);
     33 
     34  std::vector<std::optional<VideoBitrateAllocation>> layer_allocations =
     35      bitrate.GetSimulcastAllocations();
     36 
     37  EXPECT_EQ(layer0_bitrate, layer_allocations[0]);
     38  EXPECT_EQ(layer1_bitrate, layer_allocations[1]);
     39 }
     40 
     41 TEST(VideoBitrateAllocation, SimulcastTargetBitrateWithInactiveStream) {
     42  // Create bitrate allocation with bitrate only for the first and third stream.
     43  VideoBitrateAllocation bitrate;
     44  bitrate.SetBitrate(0, 0, 10000);
     45  bitrate.SetBitrate(0, 1, 20000);
     46  bitrate.SetBitrate(2, 0, 40000);
     47  bitrate.SetBitrate(2, 1, 80000);
     48 
     49  VideoBitrateAllocation layer0_bitrate;
     50  layer0_bitrate.SetBitrate(0, 0, 10000);
     51  layer0_bitrate.SetBitrate(0, 1, 20000);
     52 
     53  VideoBitrateAllocation layer2_bitrate;
     54  layer2_bitrate.SetBitrate(0, 0, 40000);
     55  layer2_bitrate.SetBitrate(0, 1, 80000);
     56 
     57  std::vector<std::optional<VideoBitrateAllocation>> layer_allocations =
     58      bitrate.GetSimulcastAllocations();
     59 
     60  EXPECT_EQ(layer0_bitrate, layer_allocations[0]);
     61  EXPECT_FALSE(layer_allocations[1]);
     62  EXPECT_EQ(layer2_bitrate, layer_allocations[2]);
     63 }
     64 }  // namespace webrtc