1 /* 2 * Copyright 2021 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 package org.webrtc; 12 13 import static com.google.common.truth.Truth.assertThat; 14 15 import androidx.test.runner.AndroidJUnit4; 16 import org.junit.Test; 17 import org.junit.runner.RunWith; 18 import org.robolectric.annotation.Config; 19 import org.webrtc.VideoEncoder.ScalingSettings; 20 21 @RunWith(AndroidJUnit4.class) 22 @Config(manifest = Config.NONE) 23 public class FramerateBitrateAdjusterTest { 24 @Test getAdjustedFramerate_alwaysReturnsDefault()25 public void getAdjustedFramerate_alwaysReturnsDefault() { 26 FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster(); 27 bitrateAdjuster.setTargets(1000, 15); 28 assertThat(bitrateAdjuster.getAdjustedFramerateFps()).isEqualTo(30.0); 29 } 30 31 @Test getAdjustedBitrate_defaultFramerate_returnsTargetBitrate()32 public void getAdjustedBitrate_defaultFramerate_returnsTargetBitrate() { 33 FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster(); 34 bitrateAdjuster.setTargets(1000, 30); 35 assertThat(bitrateAdjuster.getAdjustedBitrateBps()).isEqualTo(1000); 36 } 37 38 @Test getAdjustedBitrate_nonDefaultFramerate_returnsAdjustedBitrate()39 public void getAdjustedBitrate_nonDefaultFramerate_returnsAdjustedBitrate() { 40 FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster(); 41 bitrateAdjuster.setTargets(1000, 7.5); 42 // Target frame frame is x4 times smaller than the adjusted one (30fps). Adjusted bitrate should 43 // be x4 times larger then the target one. 44 assertThat(bitrateAdjuster.getAdjustedBitrateBps()).isEqualTo(4000); 45 } 46 } 47