OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 1346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1357 GetObjectField(jni, j_ice_server, j_ice_server_password_id)); | 1357 GetObjectField(jni, j_ice_server, j_ice_server_password_id)); |
1358 PeerConnectionInterface::IceServer server; | 1358 PeerConnectionInterface::IceServer server; |
1359 server.uri = JavaToStdString(jni, uri); | 1359 server.uri = JavaToStdString(jni, uri); |
1360 server.username = JavaToStdString(jni, username); | 1360 server.username = JavaToStdString(jni, username); |
1361 server.password = JavaToStdString(jni, password); | 1361 server.password = JavaToStdString(jni, password); |
1362 ice_servers->push_back(server); | 1362 ice_servers->push_back(server); |
1363 } | 1363 } |
1364 CHECK_EXCEPTION(jni) << "error during CallBooleanMethod"; | 1364 CHECK_EXCEPTION(jni) << "error during CallBooleanMethod"; |
1365 } | 1365 } |
1366 | 1366 |
1367 JOW(jlong, PeerConnectionFactory_nativeCreatePeerConnection)( | 1367 static void JavaRTCConfigurationToJsepRTCConfiguration( |
1368 JNIEnv *jni, jclass, jlong factory, jobject j_rtc_config, | 1368 JNIEnv* jni, |
1369 jobject j_constraints, jlong observer_p) { | 1369 jobject j_rtc_config, |
1370 rtc::scoped_refptr<PeerConnectionFactoryInterface> f( | 1370 PeerConnectionInterface::RTCConfiguration* rtc_config) { |
1371 reinterpret_cast<PeerConnectionFactoryInterface*>( | |
1372 factoryFromJava(factory))); | |
1373 | |
1374 jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); | 1371 jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); |
1375 | 1372 |
1376 jfieldID j_ice_transports_type_id = GetFieldID( | 1373 jfieldID j_ice_transports_type_id = GetFieldID( |
1377 jni, j_rtc_config_class, "iceTransportsType", | 1374 jni, j_rtc_config_class, "iceTransportsType", |
1378 "Lorg/webrtc/PeerConnection$IceTransportsType;"); | 1375 "Lorg/webrtc/PeerConnection$IceTransportsType;"); |
1379 jobject j_ice_transports_type = GetObjectField( | 1376 jobject j_ice_transports_type = GetObjectField( |
1380 jni, j_rtc_config, j_ice_transports_type_id); | 1377 jni, j_rtc_config, j_ice_transports_type_id); |
1381 | 1378 |
1382 jfieldID j_bundle_policy_id = GetFieldID( | 1379 jfieldID j_bundle_policy_id = GetFieldID( |
1383 jni, j_rtc_config_class, "bundlePolicy", | 1380 jni, j_rtc_config_class, "bundlePolicy", |
(...skipping 18 matching lines...) Expand all Loading... |
1402 jobject j_ice_servers = GetObjectField(jni, j_rtc_config, j_ice_servers_id); | 1399 jobject j_ice_servers = GetObjectField(jni, j_rtc_config, j_ice_servers_id); |
1403 | 1400 |
1404 jfieldID j_audio_jitter_buffer_max_packets_id = | 1401 jfieldID j_audio_jitter_buffer_max_packets_id = |
1405 GetFieldID(jni, j_rtc_config_class, "audioJitterBufferMaxPackets", "I"); | 1402 GetFieldID(jni, j_rtc_config_class, "audioJitterBufferMaxPackets", "I"); |
1406 jfieldID j_audio_jitter_buffer_fast_accelerate_id = GetFieldID( | 1403 jfieldID j_audio_jitter_buffer_fast_accelerate_id = GetFieldID( |
1407 jni, j_rtc_config_class, "audioJitterBufferFastAccelerate", "Z"); | 1404 jni, j_rtc_config_class, "audioJitterBufferFastAccelerate", "Z"); |
1408 | 1405 |
1409 jfieldID j_ice_connection_receiving_timeout_id = | 1406 jfieldID j_ice_connection_receiving_timeout_id = |
1410 GetFieldID(jni, j_rtc_config_class, "iceConnectionReceivingTimeout", "I"); | 1407 GetFieldID(jni, j_rtc_config_class, "iceConnectionReceivingTimeout", "I"); |
1411 | 1408 |
1412 jfieldID j_key_type_id = GetFieldID(jni, j_rtc_config_class, "keyType", | 1409 rtc_config->type = |
1413 "Lorg/webrtc/PeerConnection$KeyType;"); | 1410 JavaIceTransportsTypeToNativeType(jni, j_ice_transports_type); |
1414 jobject j_key_type = GetObjectField(jni, j_rtc_config, j_key_type_id); | 1411 rtc_config->bundle_policy = |
| 1412 JavaBundlePolicyToNativeType(jni, j_bundle_policy); |
| 1413 rtc_config->rtcp_mux_policy = |
| 1414 JavaRtcpMuxPolicyToNativeType(jni, j_rtcp_mux_policy); |
| 1415 rtc_config->tcp_candidate_policy = |
| 1416 JavaTcpCandidatePolicyToNativeType(jni, j_tcp_candidate_policy); |
| 1417 JavaIceServersToJsepIceServers(jni, j_ice_servers, &rtc_config->servers); |
| 1418 rtc_config->audio_jitter_buffer_max_packets = |
| 1419 GetIntField(jni, j_rtc_config, j_audio_jitter_buffer_max_packets_id); |
| 1420 rtc_config->audio_jitter_buffer_fast_accelerate = GetBooleanField( |
| 1421 jni, j_rtc_config, j_audio_jitter_buffer_fast_accelerate_id); |
| 1422 rtc_config->ice_connection_receiving_timeout = |
| 1423 GetIntField(jni, j_rtc_config, j_ice_connection_receiving_timeout_id); |
| 1424 } |
| 1425 |
| 1426 JOW(jlong, PeerConnectionFactory_nativeCreatePeerConnection)( |
| 1427 JNIEnv *jni, jclass, jlong factory, jobject j_rtc_config, |
| 1428 jobject j_constraints, jlong observer_p) { |
| 1429 rtc::scoped_refptr<PeerConnectionFactoryInterface> f( |
| 1430 reinterpret_cast<PeerConnectionFactoryInterface*>( |
| 1431 factoryFromJava(factory))); |
1415 | 1432 |
1416 PeerConnectionInterface::RTCConfiguration rtc_config; | 1433 PeerConnectionInterface::RTCConfiguration rtc_config; |
1417 rtc_config.type = | 1434 JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config); |
1418 JavaIceTransportsTypeToNativeType(jni, j_ice_transports_type); | 1435 |
1419 rtc_config.bundle_policy = JavaBundlePolicyToNativeType(jni, j_bundle_policy); | 1436 jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); |
1420 rtc_config.rtcp_mux_policy = | 1437 jfieldID j_key_type_id = GetFieldID(jni, j_rtc_config_class, "keyType", |
1421 JavaRtcpMuxPolicyToNativeType(jni, j_rtcp_mux_policy); | 1438 "Lorg/webrtc/PeerConnection$KeyType;"); |
1422 rtc_config.tcp_candidate_policy = | 1439 jobject j_key_type = GetObjectField(jni, j_rtc_config, j_key_type_id); |
1423 JavaTcpCandidatePolicyToNativeType(jni, j_tcp_candidate_policy); | |
1424 JavaIceServersToJsepIceServers(jni, j_ice_servers, &rtc_config.servers); | |
1425 rtc_config.audio_jitter_buffer_max_packets = | |
1426 GetIntField(jni, j_rtc_config, j_audio_jitter_buffer_max_packets_id); | |
1427 rtc_config.audio_jitter_buffer_fast_accelerate = GetBooleanField( | |
1428 jni, j_rtc_config, j_audio_jitter_buffer_fast_accelerate_id); | |
1429 rtc_config.ice_connection_receiving_timeout = | |
1430 GetIntField(jni, j_rtc_config, j_ice_connection_receiving_timeout_id); | |
1431 | 1440 |
1432 // Create ECDSA certificate. | 1441 // Create ECDSA certificate. |
1433 if (JavaKeyTypeToNativeType(jni, j_key_type) == rtc::KT_ECDSA) { | 1442 if (JavaKeyTypeToNativeType(jni, j_key_type) == rtc::KT_ECDSA) { |
1434 scoped_ptr<rtc::SSLIdentity> ssl_identity( | 1443 scoped_ptr<rtc::SSLIdentity> ssl_identity( |
1435 rtc::SSLIdentity::Generate(webrtc::kIdentityName, rtc::KT_ECDSA)); | 1444 rtc::SSLIdentity::Generate(webrtc::kIdentityName, rtc::KT_ECDSA)); |
1436 if (ssl_identity.get()) { | 1445 if (ssl_identity.get()) { |
1437 rtc_config.certificates.push_back( | 1446 rtc_config.certificates.push_back( |
1438 rtc::RTCCertificate::Create(ssl_identity.Pass())); | 1447 rtc::RTCCertificate::Create(ssl_identity.Pass())); |
1439 LOG(LS_INFO) << "ECDSA certificate created."; | 1448 LOG(LS_INFO) << "ECDSA certificate created."; |
1440 } else { | 1449 } else { |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1553 JOW(void, PeerConnection_setRemoteDescription)( | 1562 JOW(void, PeerConnection_setRemoteDescription)( |
1554 JNIEnv* jni, jobject j_pc, | 1563 JNIEnv* jni, jobject j_pc, |
1555 jobject j_observer, jobject j_sdp) { | 1564 jobject j_observer, jobject j_sdp) { |
1556 rtc::scoped_refptr<SetSdpObserverWrapper> observer( | 1565 rtc::scoped_refptr<SetSdpObserverWrapper> observer( |
1557 new rtc::RefCountedObject<SetSdpObserverWrapper>( | 1566 new rtc::RefCountedObject<SetSdpObserverWrapper>( |
1558 jni, j_observer, reinterpret_cast<ConstraintsWrapper*>(NULL))); | 1567 jni, j_observer, reinterpret_cast<ConstraintsWrapper*>(NULL))); |
1559 ExtractNativePC(jni, j_pc)->SetRemoteDescription( | 1568 ExtractNativePC(jni, j_pc)->SetRemoteDescription( |
1560 observer, JavaSdpToNativeSdp(jni, j_sdp)); | 1569 observer, JavaSdpToNativeSdp(jni, j_sdp)); |
1561 } | 1570 } |
1562 | 1571 |
1563 JOW(jboolean, PeerConnection_updateIce)( | 1572 JOW(jboolean, PeerConnection_setConfiguration)( |
1564 JNIEnv* jni, jobject j_pc, jobject j_ice_servers, jobject j_constraints) { | 1573 JNIEnv* jni, jobject j_pc, jobject j_rtc_config) { |
1565 PeerConnectionInterface::IceServers ice_servers; | 1574 PeerConnectionInterface::RTCConfiguration rtc_config; |
1566 JavaIceServersToJsepIceServers(jni, j_ice_servers, &ice_servers); | 1575 JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config); |
1567 scoped_ptr<ConstraintsWrapper> constraints( | 1576 return ExtractNativePC(jni, j_pc)->SetConfiguration(rtc_config); |
1568 new ConstraintsWrapper(jni, j_constraints)); | |
1569 return ExtractNativePC(jni, j_pc)->UpdateIce(ice_servers, constraints.get()); | |
1570 } | 1577 } |
1571 | 1578 |
1572 JOW(jboolean, PeerConnection_nativeAddIceCandidate)( | 1579 JOW(jboolean, PeerConnection_nativeAddIceCandidate)( |
1573 JNIEnv* jni, jobject j_pc, jstring j_sdp_mid, | 1580 JNIEnv* jni, jobject j_pc, jstring j_sdp_mid, |
1574 jint j_sdp_mline_index, jstring j_candidate_sdp) { | 1581 jint j_sdp_mline_index, jstring j_candidate_sdp) { |
1575 std::string sdp_mid = JavaToStdString(jni, j_sdp_mid); | 1582 std::string sdp_mid = JavaToStdString(jni, j_sdp_mid); |
1576 std::string sdp = JavaToStdString(jni, j_candidate_sdp); | 1583 std::string sdp = JavaToStdString(jni, j_candidate_sdp); |
1577 scoped_ptr<IceCandidateInterface> candidate( | 1584 scoped_ptr<IceCandidateInterface> candidate( |
1578 webrtc::CreateIceCandidate(sdp_mid, j_sdp_mline_index, sdp, NULL)); | 1585 webrtc::CreateIceCandidate(sdp_mid, j_sdp_mline_index, sdp, NULL)); |
1579 return ExtractNativePC(jni, j_pc)->AddIceCandidate(candidate.get()); | 1586 return ExtractNativePC(jni, j_pc)->AddIceCandidate(candidate.get()); |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1826 rtc::scoped_ptr<jbyte> buffer(static_cast<jbyte*>(malloc(log_size))); | 1833 rtc::scoped_ptr<jbyte> buffer(static_cast<jbyte*>(malloc(log_size))); |
1827 stream->ReadAll(buffer.get(), log_size, &read, nullptr); | 1834 stream->ReadAll(buffer.get(), log_size, &read, nullptr); |
1828 | 1835 |
1829 jbyteArray result = jni->NewByteArray(read); | 1836 jbyteArray result = jni->NewByteArray(read); |
1830 jni->SetByteArrayRegion(result, 0, read, buffer.get()); | 1837 jni->SetByteArrayRegion(result, 0, read, buffer.get()); |
1831 | 1838 |
1832 return result; | 1839 return result; |
1833 } | 1840 } |
1834 | 1841 |
1835 } // namespace webrtc_jni | 1842 } // namespace webrtc_jni |
OLD | NEW |