Merge commit 'upstream-main' into master

Bug: 261600888
Test: none, build files to be updated in follow up cl
Change-Id: Ib520938290c6bbdee4a9f73b6419b6c947a96ec4
This commit is contained in:
Jorge E. Moreira
2022-12-06 16:34:41 -08:00
5393 changed files with 541103 additions and 211666 deletions

View File

@ -2,7 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.webrtc.examples.androidnativeapi">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
@ -11,7 +10,8 @@
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".MainActivity">
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@ -6,7 +6,7 @@ if (is_android) {
apk_name = "androidnativeapi"
android_manifest = "AndroidManifest.xml"
min_sdk_version = 21
target_sdk_version = 27
target_sdk_version = 31
sources = [
"java/org/webrtc/examples/androidnativeapi/CallClient.java",
@ -21,7 +21,7 @@ if (is_android) {
"//sdk/android:surfaceviewrenderer_java",
"//sdk/android:video_api_java",
"//sdk/android:video_java",
"//third_party/android_deps:com_android_support_support_annotations_java",
"//third_party/androidx:androidx_annotation_annotation_java",
]
shared_libraries = [ ":examples_androidnativeapi_jni" ]
@ -48,6 +48,7 @@ if (is_android) {
deps = [
":generated_jni",
"../../api:scoped_refptr",
"../../api:sequence_checker",
"../../rtc_base/synchronization:mutex",
"//api:libjingle_peerconnection_api",
"//api/rtc_event_log:rtc_event_log_factory",
@ -58,7 +59,6 @@ if (is_android) {
"//modules/utility",
"//pc:libjingle_peerconnection",
"//rtc_base",
"//rtc_base:rtc_base_approved",
"//sdk/android:native_api_base",
"//sdk/android:native_api_jni",
"//sdk/android:native_api_video",

View File

@ -1 +1 @@
sakal@webrtc.org
xalep@webrtc.org

View File

@ -13,8 +13,8 @@ package org.webrtc.examples.androidnativeapi;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.Button;
import androidx.annotation.Nullable;
import org.webrtc.Camera1Enumerator;
import org.webrtc.Camera2Enumerator;
import org.webrtc.CameraEnumerator;

View File

@ -170,25 +170,27 @@ void AndroidCallClient::CreatePeerConnectionFactory() {
RTC_LOG(LS_INFO) << "Media engine created: " << pcf_deps.media_engine.get();
pcf_ = CreateModularPeerConnectionFactory(std::move(pcf_deps));
RTC_LOG(LS_INFO) << "PeerConnectionFactory created: " << pcf_;
RTC_LOG(LS_INFO) << "PeerConnectionFactory created: " << pcf_.get();
}
void AndroidCallClient::CreatePeerConnection() {
webrtc::MutexLock lock(&pc_mutex_);
webrtc::PeerConnectionInterface::RTCConfiguration config;
config.sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan;
// DTLS SRTP has to be disabled for loopback to work.
config.enable_dtls_srtp = false;
pc_ = pcf_->CreatePeerConnection(config, nullptr /* port_allocator */,
nullptr /* cert_generator */,
pc_observer_.get());
RTC_LOG(LS_INFO) << "PeerConnection created: " << pc_;
// Encryption has to be disabled for loopback to work.
webrtc::PeerConnectionFactoryInterface::Options options;
options.disable_encryption = true;
pcf_->SetOptions(options);
webrtc::PeerConnectionDependencies deps(pc_observer_.get());
pc_ = pcf_->CreatePeerConnectionOrError(config, std::move(deps)).MoveValue();
rtc::scoped_refptr<webrtc::VideoTrackInterface> local_video_track =
pcf_->CreateVideoTrack("video", video_source_);
RTC_LOG(LS_INFO) << "PeerConnection created: " << pc_.get();
rtc::scoped_refptr<webrtc::VideoTrackInterface> local_video_track(
pcf_->CreateVideoTrack("video", video_source_.get()));
local_video_track->AddOrUpdateSink(local_sink_.get(), rtc::VideoSinkWants());
pc_->AddTransceiver(local_video_track);
RTC_LOG(LS_INFO) << "Local video sink set up: " << local_video_track;
RTC_LOG(LS_INFO) << "Local video sink set up: " << local_video_track.get();
for (const rtc::scoped_refptr<webrtc::RtpTransceiverInterface>& tranceiver :
pc_->GetTransceivers()) {
@ -198,7 +200,7 @@ void AndroidCallClient::CreatePeerConnection() {
track->kind() == webrtc::MediaStreamTrackInterface::kVideoKind) {
static_cast<webrtc::VideoTrackInterface*>(track.get())
->AddOrUpdateSink(remote_sink_.get(), rtc::VideoSinkWants());
RTC_LOG(LS_INFO) << "Remote video sink set up: " << track;
RTC_LOG(LS_INFO) << "Remote video sink set up: " << track.get();
break;
}
}
@ -206,7 +208,7 @@ void AndroidCallClient::CreatePeerConnection() {
void AndroidCallClient::Connect() {
webrtc::MutexLock lock(&pc_mutex_);
pc_->CreateOffer(new rtc::RefCountedObject<CreateOfferObserver>(pc_),
pc_->CreateOffer(rtc::make_ref_counted<CreateOfferObserver>(pc_).get(),
webrtc::PeerConnectionInterface::RTCOfferAnswerOptions());
}
@ -256,14 +258,14 @@ void CreateOfferObserver::OnSuccess(webrtc::SessionDescriptionInterface* desc) {
// Ownership of desc was transferred to us, now we transfer it forward.
pc_->SetLocalDescription(
new rtc::RefCountedObject<SetLocalSessionDescriptionObserver>(), desc);
rtc::make_ref_counted<SetLocalSessionDescriptionObserver>().get(), desc);
// Generate a fake answer.
std::unique_ptr<webrtc::SessionDescriptionInterface> answer(
webrtc::CreateSessionDescription(webrtc::SdpType::kAnswer, sdp));
pc_->SetRemoteDescription(
std::move(answer),
new rtc::RefCountedObject<SetRemoteSessionDescriptionObserver>());
rtc::make_ref_counted<SetRemoteSessionDescriptionObserver>());
}
void CreateOfferObserver::OnFailure(webrtc::RTCError error) {

View File

@ -18,8 +18,8 @@
#include "api/peer_connection_interface.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/thread_checker.h"
#include "sdk/android/native_api/jni/scoped_java_ref.h"
#include "sdk/android/native_api/video/video_source.h"
@ -46,7 +46,7 @@ class AndroidCallClient {
void CreatePeerConnection() RTC_RUN_ON(thread_checker_);
void Connect() RTC_RUN_ON(thread_checker_);
rtc::ThreadChecker thread_checker_;
webrtc::SequenceChecker thread_checker_;
bool call_started_ RTC_GUARDED_BY(thread_checker_);