Non-integer frame rate in Android HW encoder
Bug: webrtc:10812 Change-Id: I4443dcfea851114bd5fbb10f11ca8a51cda12da8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229025 Commit-Queue: Sergey Silkin <ssilkin@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34813}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
efece42aa5
commit
1db921e6f3
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright 2021 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.
|
||||
*/
|
||||
|
||||
package org.webrtc;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import org.chromium.testing.local.LocalRobolectricTestRunner;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.webrtc.VideoEncoder.ScalingSettings;
|
||||
|
||||
@RunWith(LocalRobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class FramerateBitrateAdjusterTest {
|
||||
@Test
|
||||
public void getAdjustedFramerate_alwaysReturnsDefault() {
|
||||
FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster();
|
||||
bitrateAdjuster.setTargets(1000, 15);
|
||||
assertThat(bitrateAdjuster.getAdjustedFramerateFps()).isEqualTo(30.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAdjustedBitrate_defaultFramerate_returnsTargetBitrate() {
|
||||
FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster();
|
||||
bitrateAdjuster.setTargets(1000, 30);
|
||||
assertThat(bitrateAdjuster.getAdjustedBitrateBps()).isEqualTo(1000);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAdjustedBitrate_nonDefaultFramerate_returnsAdjustedBitrate() {
|
||||
FramerateBitrateAdjuster bitrateAdjuster = new FramerateBitrateAdjuster();
|
||||
bitrateAdjuster.setTargets(1000, 7.5);
|
||||
// Target frame frame is x4 times smaller than the adjusted one (30fps). Adjusted bitrate should
|
||||
// be x4 times larger then the target one.
|
||||
assertThat(bitrateAdjuster.getAdjustedBitrateBps()).isEqualTo(4000);
|
||||
}
|
||||
}
|
||||
@ -298,7 +298,7 @@ public class HardwareVideoEncoderTest {
|
||||
mockEncoderCallback);
|
||||
|
||||
MediaFormat mediaFormat = fakeMediaCodecWrapper.getConfiguredFormat();
|
||||
assertThat(mediaFormat.getInteger(MediaFormat.KEY_FRAME_RATE)).isEqualTo(30);
|
||||
assertThat(mediaFormat.getFloat(MediaFormat.KEY_FRAME_RATE)).isEqualTo(30.0f);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user