diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/third_party/webrtc/sdk | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/webrtc/sdk')
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 = |