Skip to content

Commit 8497d0f

Browse files
committed
Use new api calls which support RTCError
1 parent 75751f4 commit 8497d0f

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

webrtc-jni/src/main/cpp/src/JNI_PeerConnectionFactory.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "JavaError.h"
2525
#include "JavaFactories.h"
2626
#include "JavaNullPointerException.h"
27+
#include "JavaRuntimeException.h"
2728
#include "JavaRef.h"
2829
#include "JavaString.h"
2930
#include "JavaUtils.h"
@@ -219,7 +220,16 @@ JNIEXPORT jobject JNICALL Java_dev_onvoid_webrtc_PeerConnectionFactory_createPee
219220
webrtc::PeerConnectionObserver * observer = new jni::PeerConnectionObserver(env, jni::JavaGlobalRef<jobject>(env, jobserver));
220221
webrtc::PeerConnectionDependencies dependencies(observer);
221222

222-
auto pc = factory->CreatePeerConnection(configuration, std::move(dependencies));
223+
auto result = factory->CreatePeerConnectionOrError(configuration, std::move(dependencies));
224+
225+
if (!result.ok()) {
226+
env->Throw(jni::JavaRuntimeException(env, "Create PeerConnection failed: %s %s",
227+
ToString(result.error().type()), result.error().message()));
228+
229+
return nullptr;
230+
}
231+
232+
auto pc = result.MoveValue();
223233

224234
if (pc != nullptr) {
225235
auto javaPeerConnection = jni::JavaFactories::create(env, pc.release());

webrtc-jni/src/main/cpp/src/JNI_RTCPeerConnection.cpp

+10-1
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,16 @@ JNIEXPORT jobject JNICALL Java_dev_onvoid_webrtc_RTCPeerConnection_createDataCha
206206
webrtc::DataChannelInit dict = jni::RTCDataChannelInit::toNative(env, jni::JavaLocalRef<jobject>(env, jDict));
207207

208208
try {
209-
auto dataChannel = pc->CreateDataChannel(label, &dict);
209+
auto result = pc->CreateDataChannelOrError(label, &dict);
210+
211+
if (!result.ok()) {
212+
env->Throw(jni::JavaRuntimeException(env, "Create DataChannel failed: %s %s",
213+
ToString(result.error().type()), result.error().message()));
214+
215+
return nullptr;
216+
}
217+
218+
auto dataChannel = result.MoveValue();
210219

211220
return jni::JavaFactories::create(env, dataChannel.release()).release();
212221
}

webrtc-jni/src/main/cpp/src/JNI_RTCRtpTransceiver.cpp

+13-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "JavaFactories.h"
2222
#include "JavaList.h"
2323
#include "JavaRef.h"
24+
#include "JavaRuntimeException.h"
2425
#include "JavaString.h"
2526
#include "JavaUtils.h"
2627
#include "WebRTCUtils.h"
@@ -73,7 +74,12 @@ JNIEXPORT void JNICALL Java_dev_onvoid_webrtc_RTCRtpTransceiver_setDirection
7374
webrtc::RtpTransceiverInterface * transceiver = GetHandle<webrtc::RtpTransceiverInterface>(env, caller);
7475
CHECK_HANDLE(transceiver);
7576

76-
transceiver->SetDirection(jni::JavaEnums::toNative<webrtc::RtpTransceiverDirection>(env, jDirection));
77+
webrtc::RTCError result = transceiver->SetDirectionWithError(jni::JavaEnums::toNative<webrtc::RtpTransceiverDirection>(env, jDirection));
78+
79+
if (!result.ok()) {
80+
env->Throw(jni::JavaRuntimeException(env, "Set direction failed: %s %s",
81+
ToString(result.type()), result.message()));
82+
}
7783
}
7884

7985
JNIEXPORT jobject JNICALL Java_dev_onvoid_webrtc_RTCRtpTransceiver_getCurrentDirection
@@ -97,7 +103,12 @@ JNIEXPORT void JNICALL Java_dev_onvoid_webrtc_RTCRtpTransceiver_stop
97103
webrtc::RtpTransceiverInterface * transceiver = GetHandle<webrtc::RtpTransceiverInterface>(env, caller);
98104
CHECK_HANDLE(transceiver);
99105

100-
transceiver->Stop();
106+
webrtc::RTCError result = transceiver->StopStandard();
107+
108+
if (!result.ok()) {
109+
env->Throw(jni::JavaRuntimeException(env, "Stop transceiver failed: %s %s",
110+
ToString(result.type()), result.message()));
111+
}
101112
}
102113

103114
JNIEXPORT jboolean JNICALL Java_dev_onvoid_webrtc_RTCRtpTransceiver_stopped

0 commit comments

Comments
 (0)