diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 8cb8741095..abad9da1b4 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -1269,6 +1269,7 @@ generate_jni("generated_native_unittests_jni") { sources = [ "native_unittests/org/webrtc/ApplicationContextProvider.java", "native_unittests/org/webrtc/BuildInfo.java", + "native_unittests/org/webrtc/CodecsWrapperTestHelper.java", "native_unittests/org/webrtc/JavaTypesTestHelper.java", "native_unittests/org/webrtc/JavaVideoSourceTestHelper.java", "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", @@ -1284,6 +1285,7 @@ rtc_android_library("native_unittests_java") { java_files = [ "native_unittests/org/webrtc/ApplicationContextProvider.java", "native_unittests/org/webrtc/BuildInfo.java", + "native_unittests/org/webrtc/CodecsWrapperTestHelper.java", "native_unittests/org/webrtc/JavaTypesTestHelper.java", "native_unittests/org/webrtc/JavaVideoSourceTestHelper.java", "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", @@ -1300,6 +1302,7 @@ rtc_source_set("native_unittests") { sources = [ "native_unittests/audio_device/audio_device_unittest.cc", + "native_unittests/codecs/wrapper_unittest.cc", "native_unittests/java_types_unittest.cc", "native_unittests/peerconnection/peerconnectionfactory_unittest.cc", "native_unittests/test_jni_onload.cc", @@ -1324,6 +1327,7 @@ rtc_source_set("native_unittests") { ":media_jni", ":native_api_audio_device_module", ":native_api_base", + ":native_api_codecs", ":native_api_jni", ":native_api_peerconnection", ":native_api_video", diff --git a/sdk/android/native_unittests/codecs/DEPS b/sdk/android/native_unittests/codecs/DEPS new file mode 100644 index 0000000000..5c7289df4b --- /dev/null +++ b/sdk/android/native_unittests/codecs/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + "+media/base/mediaconstants.h", +] diff --git a/sdk/android/native_unittests/codecs/wrapper_unittest.cc b/sdk/android/native_unittests/codecs/wrapper_unittest.cc new file mode 100644 index 0000000000..453b7da262 --- /dev/null +++ b/sdk/android/native_unittests/codecs/wrapper_unittest.cc @@ -0,0 +1,35 @@ +/* + * 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 "sdk/android/native_api/codecs/wrapper.h" +#include "media/base/mediaconstants.h" +#include "sdk/android/generated_native_unittests_jni/jni/CodecsWrapperTestHelper_jni.h" +#include "test/gtest.h" + +namespace webrtc { +namespace test { +namespace { +TEST(JavaCodecsWrapperTest, JavaToNativeVideoCodecInfo) { + JNIEnv* env = AttachCurrentThreadIfNeeded(); + ScopedJavaLocalRef j_video_codec_info = + jni::Java_CodecsWrapperTestHelper_createTestVideoCodecInfo(env); + + const SdpVideoFormat video_format = + JavaToNativeVideoCodecInfo(env, j_video_codec_info.obj()); + + EXPECT_EQ(cricket::kH264CodecName, video_format.name); + const auto it = + video_format.parameters.find(cricket::kH264FmtpProfileLevelId); + ASSERT_NE(it, video_format.parameters.end()); + EXPECT_EQ(cricket::kH264ProfileLevelConstrainedBaseline, it->second); +} +} // namespace +} // namespace test +} // namespace webrtc diff --git a/sdk/android/native_unittests/org/webrtc/CodecsWrapperTestHelper.java b/sdk/android/native_unittests/org/webrtc/CodecsWrapperTestHelper.java new file mode 100644 index 0000000000..02135748e8 --- /dev/null +++ b/sdk/android/native_unittests/org/webrtc/CodecsWrapperTestHelper.java @@ -0,0 +1,26 @@ +/* + * 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. + */ + +package org.webrtc; + +import java.util.HashMap; +import java.util.Map; + +public class CodecsWrapperTestHelper { + @CalledByNative + public static VideoCodecInfo createTestVideoCodecInfo() { + Map params = new HashMap(); + params.put( + VideoCodecInfo.H264_FMTP_PROFILE_LEVEL_ID, VideoCodecInfo.H264_CONSTRAINED_BASELINE_3_1); + + VideoCodecInfo codec_info = new VideoCodecInfo("H264", params); + return codec_info; + } +}