summaryrefslogtreecommitdiff
path: root/chromium/third_party/webrtc/sdk
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/webrtc/sdk')
-rw-r--r--chromium/third_party/webrtc/sdk/BUILD.gn10
-rw-r--r--chromium/third_party/webrtc/sdk/android/BUILD.gn37
-rw-r--r--chromium/third_party/webrtc/sdk/android/api/org/webrtc/MediaTransportFactoryFactory.java22
-rw-r--r--chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnection.java24
-rw-r--r--chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java13
-rw-r--r--chromium/third_party/webrtc/sdk/android/api/org/webrtc/SurfaceTextureHelper.java11
-rw-r--r--chromium/third_party/webrtc/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java20
-rw-r--r--chromium/third_party/webrtc/sdk/android/src/jni/audio_device/audio_track_jni.cc28
-rw-r--r--chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection.cc5
-rw-r--r--chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection_factory.cc11
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h12
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.mm9
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnection.mm1
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h23
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm48
-rw-r--r--chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm5
-rw-r--r--chromium/third_party/webrtc/sdk/objc/native/src/audio/audio_device_ios.mm4
-rw-r--r--chromium/third_party/webrtc/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm7
18 files changed, 99 insertions, 191 deletions
diff --git a/chromium/third_party/webrtc/sdk/BUILD.gn b/chromium/third_party/webrtc/sdk/BUILD.gn
index 1b313b3d872..dc9b265155e 100644
--- a/chromium/third_party/webrtc/sdk/BUILD.gn
+++ b/chromium/third_party/webrtc/sdk/BUILD.gn
@@ -35,8 +35,8 @@ rtc_library("media_constraints") {
deps = [
"../api:audio_options_api",
"../api:libjingle_peerconnection_api",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("sdk_tests") {
@@ -272,8 +272,8 @@ if (is_ios || is_mac) {
"../rtc_base:checks",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
- "//third_party/abseil-cpp/absl/base:core_headers",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
libs = [ "AudioToolbox.framework" ]
}
@@ -444,8 +444,8 @@ if (is_ios || is_mac) {
"../media:rtc_media_base",
"../rtc_base",
"../rtc_base:checks",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
configs += [
"..:common_objc",
@@ -946,7 +946,6 @@ if (is_ios || is_mac) {
"../api/crypto:frame_encryptor_interface",
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue:default_task_queue_factory",
- "../api/transport/media:media_transport_interface",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
@@ -1217,7 +1216,6 @@ if (is_ios || is_mac) {
"../api/audio_codecs:audio_codecs_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
- "../api/transport/media:media_transport_interface",
"../api/video_codecs:video_codecs_api",
"../media:rtc_media_base",
"../modules:module_api",
@@ -1572,8 +1570,8 @@ if (is_ios || is_mac) {
"../api/video_codecs:video_codecs_api",
"../common_video",
"../rtc_base",
- "//third_party/abseil-cpp/absl/memory",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
rtc_library("native_video") {
diff --git a/chromium/third_party/webrtc/sdk/android/BUILD.gn b/chromium/third_party/webrtc/sdk/android/BUILD.gn
index f4d05c1fde3..3c824dbe756 100644
--- a/chromium/third_party/webrtc/sdk/android/BUILD.gn
+++ b/chromium/third_party/webrtc/sdk/android/BUILD.gn
@@ -272,7 +272,6 @@ if (is_android) {
"api/org/webrtc/MediaSource.java",
"api/org/webrtc/MediaStream.java",
"api/org/webrtc/MediaStreamTrack.java",
- "api/org/webrtc/MediaTransportFactoryFactory.java",
"api/org/webrtc/NativeLibraryLoader.java",
"api/org/webrtc/NativePeerConnectionFactory.java",
"api/org/webrtc/NetEqFactoryFactory.java",
@@ -326,7 +325,7 @@ if (is_android) {
"//third_party/android_deps:com_android_support_support_annotations_java",
]
srcjar_deps = [
- "//api:rtp_parameters_enums",
+ "//api:priority_enums",
"//api/video:video_frame_enums",
]
}
@@ -558,8 +557,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:field_trial",
"../../system_wrappers:metrics",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("audio_jni") {
@@ -655,9 +654,9 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:checks",
"../../rtc_base:rtc_task_queue",
"../../rtc_base/task_utils:to_queued_task",
- "//third_party/abseil-cpp/absl/types:optional",
"//third_party/libyuv",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("peerconnection_jni") {
@@ -745,6 +744,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:rtc_task_queue",
"../../rtc_base/system:thread_registry",
"../../system_wrappers:field_trial",
+ ]
+ absl_deps = [
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
@@ -837,8 +838,8 @@ if (current_os == "linux" || is_android) {
"//api:array_view",
"//rtc_base:checks",
"//rtc_base:rtc_base_approved",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("native_api_base") {
@@ -932,8 +933,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:criticalsection",
"../../rtc_base:logging",
"../../rtc_base:stringutils",
- "//third_party/abseil-cpp/absl/base:core_headers",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
}
# API for creating C++ wrapper implementations of api/mediastreaminterface.h
@@ -1042,8 +1043,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:metrics",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("java_audio_device_module") {
@@ -1065,8 +1066,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:field_trial",
"../../system_wrappers:metrics",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
if (rtc_enable_android_aaudio) {
@@ -1092,8 +1093,8 @@ if (current_os == "linux" || is_android) {
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
}
@@ -1118,8 +1119,8 @@ if (current_os == "linux" || is_android) {
"../../modules/audio_device:audio_device_buffer",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
- "//third_party/abseil-cpp/absl/types:optional",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
#########################
@@ -1344,9 +1345,16 @@ if (is_android) {
deps = [
":base_java",
+ ":builtin_audio_codecs_java",
+ ":camera_java",
":default_video_codec_factory_java",
+ ":filevideo_java",
+ ":hwcodecs_java",
":libjingle_peerconnection_java",
":libjingle_peerconnection_metrics_default_java",
+ ":peerconnection_java",
+ ":surfaceviewrenderer_java",
+ ":swcodecs_java",
":video_api_java",
":video_java",
"//base:base_java_test_support",
@@ -1354,6 +1362,7 @@ if (is_android) {
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/google-truth:google_truth_java",
+ "//third_party/hamcrest:hamcrest_library_java",
"//third_party/junit",
"//third_party/mockito:mockito_java",
]
@@ -1450,8 +1459,8 @@ if (is_android) {
"../../test:fileutils",
"../../test:test_support",
"../../testing/gtest",
- "//third_party/abseil-cpp/absl/memory",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
rtc_android_library("native_unittests_java") {
@@ -1508,7 +1517,13 @@ if (is_android) {
]
deps = [
+ ":base_java",
+ ":camera_java",
+ ":hwcodecs_java",
":libjingle_peerconnection_java",
+ ":peerconnection_java",
+ ":video_api_java",
+ ":video_java",
"//base:base_java_test_support",
"//third_party/google-truth:google_truth_java",
]
diff --git a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/MediaTransportFactoryFactory.java b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/MediaTransportFactoryFactory.java
deleted file mode 100644
index c16a37a6d77..00000000000
--- a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/MediaTransportFactoryFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 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;
-
-/**
- * Factory for creating webrtc::MediaTransportFactory instances.
- */
-public interface MediaTransportFactoryFactory {
- /**
- * Dynamically allocates a webrtc::MediaTransportFactory instance and returns a pointer to it.
- * The caller takes ownership of the object.
- */
- public long createNativeMediaTransportFactory();
-}
diff --git a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnection.java b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnection.java
index bf0a2e94413..920e2f12c96 100644
--- a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnection.java
+++ b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnection.java
@@ -536,18 +536,6 @@ public class PeerConnection {
// Null indicates no change to currently configured value.
@Nullable public Boolean allowCodecSwitching;
- /*
- * Experimental flag that enables a use of media transport. If this is true, the media transport
- * factory MUST be provided to the PeerConnectionFactory.
- */
- public boolean useMediaTransport;
-
- /*
- * Experimental flag that enables a use of media transport for data channels. If this is true,
- * the media transport factory MUST be provided to the PeerConnectionFactory.
- */
- public boolean useMediaTransportForDataChannels;
-
/**
* Defines advanced optional cryptographic settings related to SRTP and
* frame encryption for native WebRTC. Setting this will overwrite any
@@ -602,8 +590,6 @@ public class PeerConnection {
networkPreference = AdapterType.UNKNOWN;
sdpSemantics = SdpSemantics.PLAN_B;
activeResetSrtpParams = false;
- useMediaTransport = false;
- useMediaTransportForDataChannels = false;
cryptoOptions = null;
turnLoggingId = null;
allowCodecSwitching = null;
@@ -816,16 +802,6 @@ public class PeerConnection {
return allowCodecSwitching;
}
- @CalledByNative("RTCConfiguration")
- boolean getUseMediaTransport() {
- return useMediaTransport;
- }
-
- @CalledByNative("RTCConfiguration")
- boolean getUseMediaTransportForDataChannels() {
- return useMediaTransportForDataChannels;
- }
-
@Nullable
@CalledByNative("RTCConfiguration")
CryptoOptions getCryptoOptions() {
diff --git a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java
index decdc0cc427..c87e639f235 100644
--- a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java
+++ b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java
@@ -175,7 +175,6 @@ public class PeerConnectionFactory {
@Nullable private FecControllerFactoryFactoryInterface fecControllerFactoryFactory;
@Nullable private NetworkControllerFactoryFactory networkControllerFactoryFactory;
@Nullable private NetworkStatePredictorFactoryFactory networkStatePredictorFactoryFactory;
- @Nullable private MediaTransportFactoryFactory mediaTransportFactoryFactory;
@Nullable private NetEqFactoryFactory neteqFactoryFactory;
private Builder() {}
@@ -247,13 +246,6 @@ public class PeerConnectionFactory {
return this;
}
- /** Sets a MediaTransportFactoryFactory for a PeerConnectionFactory. */
- public Builder setMediaTransportFactoryFactory(
- MediaTransportFactoryFactory mediaTransportFactoryFactory) {
- this.mediaTransportFactoryFactory = mediaTransportFactoryFactory;
- return this;
- }
-
/**
* Sets a NetEqFactoryFactory for the PeerConnectionFactory. When using a
* custom NetEqFactoryFactory, the AudioDecoderFactoryFactory will be set
@@ -284,9 +276,6 @@ public class PeerConnectionFactory {
networkStatePredictorFactoryFactory == null
? 0
: networkStatePredictorFactoryFactory.createNativeNetworkStatePredictorFactory(),
- mediaTransportFactoryFactory == null
- ? 0
- : mediaTransportFactoryFactory.createNativeMediaTransportFactory(),
neteqFactoryFactory == null ? 0 : neteqFactoryFactory.createNativeNetEqFactory());
}
}
@@ -607,7 +596,7 @@ public class PeerConnectionFactory {
long audioDecoderFactory, VideoEncoderFactory encoderFactory,
VideoDecoderFactory decoderFactory, long nativeAudioProcessor,
long nativeFecControllerFactory, long nativeNetworkControllerFactory,
- long nativeNetworkStatePredictorFactory, long mediaTransportFactory, long neteqFactory);
+ long nativeNetworkStatePredictorFactory, long neteqFactory);
private static native long nativeCreatePeerConnection(long factory,
PeerConnection.RTCConfiguration rtcConfig, MediaConstraints constraints, long nativeObserver,
diff --git a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/SurfaceTextureHelper.java b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/SurfaceTextureHelper.java
index 3522a874879..b7b028f5aeb 100644
--- a/chromium/third_party/webrtc/sdk/android/api/org/webrtc/SurfaceTextureHelper.java
+++ b/chromium/third_party/webrtc/sdk/android/api/org/webrtc/SurfaceTextureHelper.java
@@ -263,6 +263,17 @@ public class SurfaceTextureHelper {
});
}
+ /**
+ * Forces a frame to be produced. If no new frame is available, the last frame is sent to the
+ * listener again.
+ */
+ public void forceFrame() {
+ handler.post(() -> {
+ hasPendingTexture = true;
+ tryDeliverTextureFrame();
+ });
+ }
+
/** Set the rotation of the delivered frames. */
public void setFrameRotation(int rotation) {
handler.post(() -> this.frameRotation = rotation);
diff --git a/chromium/third_party/webrtc/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java b/chromium/third_party/webrtc/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java
index edc9dd179df..94eb2a4357a 100644
--- a/chromium/third_party/webrtc/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java
+++ b/chromium/third_party/webrtc/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java
@@ -183,7 +183,7 @@ class WebRtcAudioTrack {
}
@CalledByNative
- private boolean initPlayout(int sampleRate, int channels, double bufferSizeFactor) {
+ private int initPlayout(int sampleRate, int channels, double bufferSizeFactor) {
threadChecker.checkIsOnValidThread();
Logging.d(TAG,
"initPlayout(sampleRate=" + sampleRate + ", channels=" + channels
@@ -212,14 +212,14 @@ class WebRtcAudioTrack {
// can happen that |minBufferSizeInBytes| contains an invalid value.
if (minBufferSizeInBytes < byteBuffer.capacity()) {
reportWebRtcAudioTrackInitError("AudioTrack.getMinBufferSize returns an invalid value.");
- return false;
+ return -1;
}
// Ensure that prevision audio session was stopped correctly before trying
// to create a new AudioTrack.
if (audioTrack != null) {
reportWebRtcAudioTrackInitError("Conflict with existing AudioTrack.");
- return false;
+ return -1;
}
try {
// Create an AudioTrack object and initialize its associated audio buffer.
@@ -241,7 +241,7 @@ class WebRtcAudioTrack {
} catch (IllegalArgumentException e) {
reportWebRtcAudioTrackInitError(e.getMessage());
releaseAudioResources();
- return false;
+ return -1;
}
// It can happen that an AudioTrack is created but it was not successfully
@@ -250,11 +250,11 @@ class WebRtcAudioTrack {
if (audioTrack == null || audioTrack.getState() != AudioTrack.STATE_INITIALIZED) {
reportWebRtcAudioTrackInitError("Initialization of audio track failed.");
releaseAudioResources();
- return false;
+ return -1;
}
logMainParameters();
logMainParametersExtended();
- return true;
+ return minBufferSizeInBytes;
}
@CalledByNative
@@ -423,6 +423,14 @@ class WebRtcAudioTrack {
}
}
+ @CalledByNative
+ private int getBufferSizeInFrames() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ return audioTrack.getBufferSizeInFrames();
+ }
+ return -1;
+ }
+
private void logBufferCapacityInFrames() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Logging.d(TAG,
diff --git a/chromium/third_party/webrtc/sdk/android/src/jni/audio_device/audio_track_jni.cc b/chromium/third_party/webrtc/sdk/android/src/jni/audio_device/audio_track_jni.cc
index 8f0a0417110..d5b880b1b0f 100644
--- a/chromium/third_party/webrtc/sdk/android/src/jni/audio_device/audio_track_jni.cc
+++ b/chromium/third_party/webrtc/sdk/android/src/jni/audio_device/audio_track_jni.cc
@@ -20,6 +20,7 @@
#include "sdk/android/generated_java_audio_device_module_native_jni/WebRtcAudioTrack_jni.h"
#include "sdk/android/src/jni/jni_helpers.h"
#include "system_wrappers/include/field_trial.h"
+#include "system_wrappers/include/metrics.h"
namespace webrtc {
@@ -89,12 +90,33 @@ int32_t AudioTrackJni::InitPlayout() {
nullptr);
if (buffer_size_factor == 0)
buffer_size_factor = 1.0;
- if (!Java_WebRtcAudioTrack_initPlayout(
- env_, j_audio_track_, audio_parameters_.sample_rate(),
- static_cast<int>(audio_parameters_.channels()), buffer_size_factor)) {
+ int requested_buffer_size_bytes = Java_WebRtcAudioTrack_initPlayout(
+ env_, j_audio_track_, audio_parameters_.sample_rate(),
+ static_cast<int>(audio_parameters_.channels()), buffer_size_factor);
+ if (requested_buffer_size_bytes < 0) {
RTC_LOG(LS_ERROR) << "InitPlayout failed";
return -1;
}
+ // Update UMA histograms for both the requested and actual buffer size.
+ // To avoid division by zero, we assume the sample rate is 48k if an invalid
+ // value is found.
+ const int sample_rate = audio_parameters_.sample_rate() <= 0
+ ? 48000
+ : audio_parameters_.sample_rate();
+ // This calculation assumes that audio is mono.
+ const int requested_buffer_size_ms =
+ (requested_buffer_size_bytes * 1000) / (2 * sample_rate);
+ RTC_HISTOGRAM_COUNTS("WebRTC.Audio.AndroidNativeRequestedAudioBufferSizeMs",
+ requested_buffer_size_ms, 0, 1000, 100);
+ int actual_buffer_size_frames =
+ Java_WebRtcAudioTrack_getBufferSizeInFrames(env_, j_audio_track_);
+ if (actual_buffer_size_frames >= 0) {
+ const int actual_buffer_size_ms =
+ actual_buffer_size_frames * 1000 / sample_rate;
+ RTC_HISTOGRAM_COUNTS("WebRTC.Audio.AndroidNativeAudioBufferSizeMs",
+ actual_buffer_size_ms, 0, 1000, 100);
+ }
+
initialized_ = true;
return 0;
}
diff --git a/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection.cc b/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection.cc
index 0ae39fbf661..05e940ee806 100644
--- a/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection.cc
+++ b/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection.cc
@@ -264,11 +264,6 @@ void JavaToNativeRTCConfiguration(
rtc_config->sdp_semantics = JavaToNativeSdpSemantics(jni, j_sdp_semantics);
rtc_config->active_reset_srtp_params =
Java_RTCConfiguration_getActiveResetSrtpParams(jni, j_rtc_config);
- rtc_config->use_media_transport =
- Java_RTCConfiguration_getUseMediaTransport(jni, j_rtc_config);
- rtc_config->use_media_transport_for_data_channels =
- Java_RTCConfiguration_getUseMediaTransportForDataChannels(jni,
- j_rtc_config);
rtc_config->crypto_options =
JavaToNativeOptionalCryptoOptions(jni, j_crypto_options);
diff --git a/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection_factory.cc b/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection_factory.cc
index 48dd6e41d89..32382fe5216 100644
--- a/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection_factory.cc
+++ b/chromium/third_party/webrtc/sdk/android/src/jni/pc/peer_connection_factory.cc
@@ -82,7 +82,9 @@ void PostJavaCallback(JNIEnv* env,
JavaAsyncCallback(JNIEnv* env,
const JavaRef<jobject>& j_object,
JavaMethodPointer java_method_pointer)
- : j_object_(env, j_object), java_method_pointer_(java_method_pointer) {}
+ : rtc::MessageHandler(false),
+ j_object_(env, j_object),
+ java_method_pointer_(java_method_pointer) {}
void OnMessage(rtc::Message*) override {
java_method_pointer_(AttachCurrentThreadIfNeeded(), j_object_);
@@ -246,7 +248,7 @@ static void JNI_PeerConnectionFactory_ShutdownInternalTracer(JNIEnv* jni) {
// Following parameters are optional:
// |audio_device_module|, |jencoder_factory|, |jdecoder_factory|,
-// |audio_processor|, |media_transport_factory|, |fec_controller_factory|,
+// |audio_processor|, |fec_controller_factory|,
// |network_state_predictor_factory|, |neteq_factory|.
ScopedJavaLocalRef<jobject> CreatePeerConnectionFactoryForJava(
JNIEnv* jni,
@@ -263,7 +265,6 @@ ScopedJavaLocalRef<jobject> CreatePeerConnectionFactoryForJava(
network_controller_factory,
std::unique_ptr<NetworkStatePredictorFactoryInterface>
network_state_predictor_factory,
- std::unique_ptr<MediaTransportFactory> media_transport_factory,
std::unique_ptr<NetEqFactory> neteq_factory) {
// talk/ assumes pretty widely that the current Thread is ThreadManager'd, but
// ThreadManager only WrapCurrentThread()s the thread where it is first
@@ -310,7 +311,6 @@ ScopedJavaLocalRef<jobject> CreatePeerConnectionFactoryForJava(
std::move(network_controller_factory);
dependencies.network_state_predictor_factory =
std::move(network_state_predictor_factory);
- dependencies.media_transport_factory = std::move(media_transport_factory);
dependencies.neteq_factory = std::move(neteq_factory);
cricket::MediaEngineDependencies media_dependencies;
@@ -355,7 +355,6 @@ JNI_PeerConnectionFactory_CreatePeerConnectionFactory(
jlong native_fec_controller_factory,
jlong native_network_controller_factory,
jlong native_network_state_predictor_factory,
- jlong native_media_transport_factory,
jlong native_neteq_factory) {
rtc::scoped_refptr<AudioProcessing> audio_processor =
reinterpret_cast<AudioProcessing*>(native_audio_processor);
@@ -372,8 +371,6 @@ JNI_PeerConnectionFactory_CreatePeerConnectionFactory(
native_network_controller_factory),
TakeOwnershipOfUniquePtr<NetworkStatePredictorFactoryInterface>(
native_network_state_predictor_factory),
- TakeOwnershipOfUniquePtr<MediaTransportFactory>(
- native_media_transport_factory),
TakeOwnershipOfUniquePtr<NetEqFactory>(native_neteq_factory));
}
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h
index 4e9c674ef8e..86eaa6cee5d 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h
@@ -198,18 +198,6 @@ RTC_OBJC_EXPORT
@property(nonatomic, assign) BOOL allowCodecSwitching;
/**
- * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection
- * that it should use the MediaTransportInterface.
- */
-@property(nonatomic, assign) BOOL useMediaTransport;
-
-/**
- * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection
- * that it should use the MediaTransportInterface for data channels.
- */
-@property(nonatomic, assign) BOOL useMediaTransportForDataChannels;
-
-/**
* Defines advanced optional cryptographic settings related to SRTP and
* frame encryption for native WebRTC. Setting this will overwrite any
* options set through the PeerConnectionFactory (which is deprecated).
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.mm b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.mm
index 52c14505054..55abbcdb184 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.mm
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.mm
@@ -52,8 +52,6 @@
@synthesize turnCustomizer = _turnCustomizer;
@synthesize activeResetSrtpParams = _activeResetSrtpParams;
@synthesize allowCodecSwitching = _allowCodecSwitching;
-@synthesize useMediaTransport = _useMediaTransport;
-@synthesize useMediaTransportForDataChannels = _useMediaTransportForDataChannels;
@synthesize cryptoOptions = _cryptoOptions;
@synthesize rtcpAudioReportIntervalMs = _rtcpAudioReportIntervalMs;
@synthesize rtcpVideoReportIntervalMs = _rtcpVideoReportIntervalMs;
@@ -106,8 +104,6 @@
_iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout;
_iceBackupCandidatePairPingInterval =
config.ice_backup_candidate_pair_ping_interval;
- _useMediaTransport = config.use_media_transport;
- _useMediaTransportForDataChannels = config.use_media_transport_for_data_channels;
_keyType = RTCEncryptionKeyTypeECDSA;
_iceCandidatePoolSize = config.ice_candidate_pool_size;
_shouldPruneTurnPorts = config.prune_turn_ports;
@@ -143,7 +139,7 @@
- (NSString *)description {
static NSString *formatString = @"RTC_OBJC_TYPE(RTCConfiguration): "
@"{\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n"
- @"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n%d\n}\n";
+ @"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n}\n";
return [NSString
stringWithFormat:formatString,
@@ -169,7 +165,6 @@
_disableIPV6OnWiFi,
_maxIPv6Networks,
_activeResetSrtpParams,
- _useMediaTransport,
_enableDscp];
}
@@ -208,8 +203,6 @@
_iceConnectionReceivingTimeout;
nativeConfig->ice_backup_candidate_pair_ping_interval =
_iceBackupCandidatePairPingInterval;
- nativeConfig->use_media_transport = _useMediaTransport;
- nativeConfig->use_media_transport_for_data_channels = _useMediaTransportForDataChannels;
rtc::KeyType keyType =
[[self class] nativeEncryptionKeyTypeForKeyType:_keyType];
if (_certificate != nullptr) {
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnection.mm b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnection.mm
index fa68d08e74d..9e561fc65f9 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnection.mm
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnection.mm
@@ -29,7 +29,6 @@
#include "api/jsep_ice_candidate.h"
#include "api/rtc_event_log_output_file.h"
-#include "api/transport/media/media_transport_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/numerics/safe_conversions.h"
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
index c2aab0be568..1d3b82550a5 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
@@ -17,7 +17,6 @@ namespace webrtc {
class AudioDeviceModule;
class AudioEncoderFactory;
class AudioDecoderFactory;
-class MediaTransportFactory;
class NetworkControllerFactoryInterface;
class VideoEncoderFactory;
class VideoDecoderFactory;
@@ -65,30 +64,12 @@ NS_ASSUME_NONNULL_BEGIN
audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule
audioProcessingModule:
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
- mediaTransportFactory:
- (std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
-
-- (instancetype)
- initWithNativeAudioEncoderFactory:
- (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
- nativeAudioDecoderFactory:
- (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
- nativeVideoEncoderFactory:
- (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
- nativeVideoDecoderFactory:
- (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
- audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule
- audioProcessingModule:
- (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
networkControllerFactory:(std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
- networkControllerFactory
- mediaTransportFactory:
- (std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
+ networkControllerFactory;
- (instancetype)
initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
- decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory
- mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
+ decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory;
/** Initialize an RTCPeerConnection with a configuration, constraints, and
* dependencies.
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
index 2e34b05fed0..4ce38dbd7fd 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
@@ -52,7 +52,6 @@
// C++ target.
// TODO(zhihuang): Remove nogncheck once MediaEngineInterface is moved to C++
// API layer.
-#include "api/transport/media/media_transport_interface.h"
#include "media/engine/webrtc_media_engine.h" // nogncheck
@implementation RTC_OBJC_TYPE (RTCPeerConnectionFactory) {
@@ -84,15 +83,13 @@
nativeVideoDecoderFactory:webrtc::ObjCToNativeVideoDecoderFactory([[RTC_OBJC_TYPE(
RTCVideoDecoderFactoryH264) alloc] init])
audioDeviceModule:[self audioDeviceModule]
- audioProcessingModule:nullptr
- mediaTransportFactory:nullptr];
+ audioProcessingModule:nullptr];
#endif
}
- (instancetype)
initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
- decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory
- mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory {
+ decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory {
#ifdef HAVE_NO_MEDIA
return [self initWithNoMedia];
#else
@@ -109,18 +106,9 @@
nativeVideoEncoderFactory:std::move(native_encoder_factory)
nativeVideoDecoderFactory:std::move(native_decoder_factory)
audioDeviceModule:[self audioDeviceModule]
- audioProcessingModule:nullptr
- mediaTransportFactory:std::move(mediaTransportFactory)];
+ audioProcessingModule:nullptr];
#endif
}
-- (instancetype)
- initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
- decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory {
- return [self initWithEncoderFactory:encoderFactory
- decoderFactory:decoderFactory
- mediaTransportFactory:nullptr];
-}
-
- (instancetype)initNative {
if (self = [super init]) {
_networkThread = rtc::Thread::CreateWithSocketServer();
@@ -170,30 +158,7 @@
nativeVideoDecoderFactory:std::move(videoDecoderFactory)
audioDeviceModule:audioDeviceModule
audioProcessingModule:audioProcessingModule
- mediaTransportFactory:nullptr];
-}
-
-- (instancetype)initWithNativeAudioEncoderFactory:
- (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
- nativeAudioDecoderFactory:
- (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
- nativeVideoEncoderFactory:
- (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
- nativeVideoDecoderFactory:
- (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
- audioDeviceModule:(webrtc::AudioDeviceModule *)audioDeviceModule
- audioProcessingModule:
- (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
- mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
- mediaTransportFactory {
- return [self initWithNativeAudioEncoderFactory:audioEncoderFactory
- nativeAudioDecoderFactory:audioDecoderFactory
- nativeVideoEncoderFactory:std::move(videoEncoderFactory)
- nativeVideoDecoderFactory:std::move(videoDecoderFactory)
- audioDeviceModule:audioDeviceModule
- audioProcessingModule:audioProcessingModule
- networkControllerFactory:nullptr
- mediaTransportFactory:std::move(mediaTransportFactory)];
+ networkControllerFactory:nullptr];
}
- (instancetype)initWithNativeAudioEncoderFactory:
(rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
@@ -208,9 +173,7 @@
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
networkControllerFactory:
(std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
- networkControllerFactory
- mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
- mediaTransportFactory {
+ networkControllerFactory {
if (self = [self initNative]) {
webrtc::PeerConnectionFactoryDependencies dependencies;
dependencies.network_thread = _networkThread.get();
@@ -235,7 +198,6 @@
dependencies.event_log_factory =
std::make_unique<webrtc::RtcEventLogFactory>(dependencies.task_queue_factory.get());
dependencies.network_controller_factory = std::move(networkControllerFactory);
- dependencies.media_transport_factory = std::move(mediaTransportFactory);
#endif
_nativeFactory = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!");
diff --git a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
index 8f52bea8e33..991ec5a41cc 100644
--- a/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
+++ b/chromium/third_party/webrtc/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
@@ -13,7 +13,6 @@
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
-#include "api/transport/media/media_transport_interface.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "modules/audio_device/include/audio_device.h"
@@ -26,7 +25,6 @@
rtc::scoped_refptr<webrtc::AudioDecoderFactory> _audioDecoderFactory;
rtc::scoped_refptr<webrtc::AudioDeviceModule> _audioDeviceModule;
rtc::scoped_refptr<webrtc::AudioProcessing> _audioProcessingModule;
- std::unique_ptr<webrtc::MediaTransportFactory> _mediaTransportFactory;
}
+ (RTCPeerConnectionFactoryBuilder *)builder {
@@ -41,8 +39,7 @@
nativeVideoEncoderFactory:std::move(_videoEncoderFactory)
nativeVideoDecoderFactory:std::move(_videoDecoderFactory)
audioDeviceModule:_audioDeviceModule
- audioProcessingModule:_audioProcessingModule
- mediaTransportFactory:std::move(_mediaTransportFactory)];
+ audioProcessingModule:_audioProcessingModule];
}
- (void)setVideoEncoderFactory:(std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory {
diff --git a/chromium/third_party/webrtc/sdk/objc/native/src/audio/audio_device_ios.mm b/chromium/third_party/webrtc/sdk/objc/native/src/audio/audio_device_ios.mm
index b70c4d0e50b..55dc517e4c1 100644
--- a/chromium/third_party/webrtc/sdk/objc/native/src/audio/audio_device_ios.mm
+++ b/chromium/third_party/webrtc/sdk/objc/native/src/audio/audio_device_ios.mm
@@ -102,7 +102,8 @@ static void LogDeviceInfo() {
#endif // !defined(NDEBUG)
AudioDeviceIOS::AudioDeviceIOS()
- : audio_device_buffer_(nullptr),
+ : MessageHandler(false),
+ audio_device_buffer_(nullptr),
audio_unit_(nullptr),
recording_(0),
playing_(0),
@@ -125,6 +126,7 @@ AudioDeviceIOS::AudioDeviceIOS()
AudioDeviceIOS::~AudioDeviceIOS() {
RTC_DCHECK(thread_checker_.IsCurrent());
LOGI() << "~dtor" << ios::GetCurrentThreadDescription();
+ thread_->Clear(this);
Terminate();
audio_session_observer_ = nil;
}
diff --git a/chromium/third_party/webrtc/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm b/chromium/third_party/webrtc/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
index 7d19d4095d7..14131dc38d3 100644
--- a/chromium/third_party/webrtc/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
+++ b/chromium/third_party/webrtc/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
@@ -22,7 +22,6 @@ extern "C" {
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
-#include "api/transport/media/media_transport_interface.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "modules/audio_device/include/audio_device.h"
@@ -50,8 +49,7 @@ extern "C" {
nativeVideoEncoderFactory:nullptr
nativeVideoDecoderFactory:nullptr
audioDeviceModule:nullptr
- audioProcessingModule:nullptr
- mediaTransportFactory:nullptr]);
+ audioProcessingModule:nullptr]);
#endif
RTCPeerConnectionFactoryBuilder* builder = [[RTCPeerConnectionFactoryBuilder alloc] init];
RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory =
@@ -72,8 +70,7 @@ extern "C" {
nativeVideoEncoderFactory:nullptr
nativeVideoDecoderFactory:nullptr
audioDeviceModule:nullptr
- audioProcessingModule:nullptr
- mediaTransportFactory:nullptr]);
+ audioProcessingModule:nullptr]);
#endif
RTCPeerConnectionFactoryBuilder* builder = [RTCPeerConnectionFactoryBuilder defaultBuilder];
RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory =