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:
@ -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" />
|
||||
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -1 +1 @@
|
||||
sakal@webrtc.org
|
||||
xalep@webrtc.org
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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_);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user