Add resolution bitrate thresholds to EncoderInfo.
When provided, these thresholds will be used instead of WebRTC default limits specified in DropDueToSize() and GetMaxDefaultVideoBitrateKbps(). Bug: none Change-Id: Ida45ea832041963b8b8475d69114b5c60a172fb7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142170 Commit-Queue: Sergey Silkin <ssilkin@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Alex Glaznev <glaznev@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28390}
This commit is contained in:

committed by
Commit Bot

parent
2644a703cc
commit
be0adee768
@ -8,9 +8,13 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "sdk/android/native_api/codecs/wrapper.h"
|
||||
#include <memory>
|
||||
|
||||
#include "absl/memory/memory.h"
|
||||
#include "media/base/media_constants.h"
|
||||
#include "sdk/android/generated_native_unittests_jni/CodecsWrapperTestHelper_jni.h"
|
||||
#include "sdk/android/native_api/codecs/wrapper.h"
|
||||
#include "sdk/android/src/jni/video_encoder_wrapper.h"
|
||||
#include "test/gtest.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -30,6 +34,25 @@ TEST(JavaCodecsWrapperTest, JavaToNativeVideoCodecInfo) {
|
||||
ASSERT_NE(it, video_format.parameters.end());
|
||||
EXPECT_EQ(cricket::kH264ProfileLevelConstrainedBaseline, it->second);
|
||||
}
|
||||
|
||||
TEST(JavaCodecsWrapperTest, JavaToNativeResolutionBitrateThresholds) {
|
||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||
ScopedJavaLocalRef<jobject> j_fake_encoder =
|
||||
jni::Java_CodecsWrapperTestHelper_createFakeVideoEncoder(env);
|
||||
|
||||
auto encoder = jni::JavaToNativeVideoEncoder(env, j_fake_encoder);
|
||||
ASSERT_TRUE(encoder);
|
||||
|
||||
// Check that the resolution bitrate thresholds are correctly passed from Java
|
||||
// to native.
|
||||
const std::vector<VideoEncoder::ResolutionBitrateThresholds> thresholds =
|
||||
encoder->GetEncoderInfo().resolution_bitrate_thresholds;
|
||||
ASSERT_EQ(thresholds.size(), 1u);
|
||||
EXPECT_EQ(thresholds[0].frame_size_pixels, 640 * 360);
|
||||
EXPECT_EQ(thresholds[0].min_start_bitrate_bps, 300000);
|
||||
EXPECT_EQ(thresholds[0].min_bitrate_bps, 200000);
|
||||
EXPECT_EQ(thresholds[0].max_bitrate_bps, 1000000);
|
||||
}
|
||||
} // namespace
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user