Add support for creating java PCF from native one.
Add support for creating java PeerConnectionFactory from native one by adding: 1. Constructor from native pointer in java PeerConnectionFactory 2. Method NativeToJavaPeerConnectionFactory in sdk/android/native/api/peerconnection/peerconnectionfactory.h that provides ability to convert native factory to java one. Bug: webrtc:8946 Change-Id: Ibe8b019bd0d45849e2b16d74663d054784526746 Reviewed-on: https://webrtc-review.googlesource.com/62344 Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22564}
This commit is contained in:
@ -13,7 +13,6 @@
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "api/peerconnectioninterface.h"
|
||||
#include "api/video_codecs/video_decoder_factory.h"
|
||||
#include "api/video_codecs/video_encoder_factory.h"
|
||||
#include "media/base/mediaengine.h"
|
||||
@ -99,6 +98,25 @@ void PeerConnectionFactorySignalingThreadReady() {
|
||||
Java_PeerConnectionFactory_onSignalingThreadReady(env);
|
||||
}
|
||||
|
||||
jobject NativeToJavaPeerConnectionFactory(
|
||||
JNIEnv* jni,
|
||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pcf,
|
||||
std::unique_ptr<rtc::Thread> network_thread,
|
||||
std::unique_ptr<rtc::Thread> worker_thread,
|
||||
std::unique_ptr<rtc::Thread> signaling_thread,
|
||||
rtc::NetworkMonitorFactory* network_monitor_factory) {
|
||||
jni::OwnedFactoryAndThreads* owned_factory = new jni::OwnedFactoryAndThreads(
|
||||
std::move(network_thread), std::move(worker_thread),
|
||||
std::move(signaling_thread), nullptr /* legacy_encoder_factory */,
|
||||
nullptr /* legacy_decoder_factory */, network_monitor_factory,
|
||||
pcf.release());
|
||||
owned_factory->InvokeJavaCallbacksOnFactoryThreads();
|
||||
|
||||
return Java_PeerConnectionFactory_Constructor(
|
||||
jni, NativeToJavaPointer(owned_factory))
|
||||
.Release();
|
||||
}
|
||||
|
||||
static void JNI_PeerConnectionFactory_InitializeAndroidGlobals(
|
||||
JNIEnv* jni,
|
||||
const JavaParamRef<jclass>&,
|
||||
|
||||
@ -12,6 +12,8 @@
|
||||
#define SDK_ANDROID_SRC_JNI_PC_PEERCONNECTIONFACTORY_H_
|
||||
|
||||
#include <jni.h>
|
||||
#include "api/peerconnectioninterface.h"
|
||||
#include "rtc_base/thread.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace jni {
|
||||
@ -20,6 +22,15 @@ void PeerConnectionFactoryNetworkThreadReady();
|
||||
void PeerConnectionFactoryWorkerThreadReady();
|
||||
void PeerConnectionFactorySignalingThreadReady();
|
||||
|
||||
// Creates java PeerConnectionFactory with specified |pcf|.
|
||||
jobject NativeToJavaPeerConnectionFactory(
|
||||
JNIEnv* jni,
|
||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pcf,
|
||||
std::unique_ptr<rtc::Thread> network_thread,
|
||||
std::unique_ptr<rtc::Thread> worker_thread,
|
||||
std::unique_ptr<rtc::Thread> signaling_thread,
|
||||
rtc::NetworkMonitorFactory* network_monitor_factory = nullptr);
|
||||
|
||||
} // namespace jni
|
||||
} // namespace webrtc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user