Chromium Code Reviews| Index: talk/app/webrtc/java/jni/peerconnection_jni.cc |
| diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
| index 194f9ff98c1b2887b4ae16c921ab35a7088954ec..f04ee6c1b2b7c26609dcdc5ba7b7b920c38a930a 100644 |
| --- a/talk/app/webrtc/java/jni/peerconnection_jni.cc |
| +++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
| @@ -1753,6 +1753,27 @@ JOW(void, PeerConnection_nativeRemoveLocalStream)( |
| reinterpret_cast<MediaStreamInterface*>(native_stream)); |
| } |
| +JOW(jobject, PeerConnection_nativeCreateSender)( |
| + JNIEnv* jni, jobject j_pc, jstring j_kind) { |
| + jclass j_rtp_sender_class = FindClass(jni, "org/webrtc/RtpSender"); |
| + jmethodID j_rtp_sender_ctor = |
| + GetMethodID(jni, j_rtp_sender_class, "<init>", "(J)V"); |
| + |
| + std::string kind = JavaToStdString(jni, j_kind); |
| + rtc::scoped_refptr<RtpSenderInterface> sender = |
| + ExtractNativePC(jni, j_pc)->CreateSender(kind); |
| + if (!sender.get()) { |
| + return nullptr; |
| + } |
| + jlong nativeSenderPtr = jlongFromPointer(sender.get()); |
| + jobject j_sender = |
| + jni->NewObject(j_rtp_sender_class, j_rtp_sender_ctor, nativeSenderPtr); |
| + CHECK_EXCEPTION(jni) << "error during NewObject"; |
| + // Sender is now owned by Java object, and will be freed from there. |
|
AlexG
2015/12/02 00:50:16
nit: extend comment to list what method will free
|
| + sender->AddRef(); |
| + return j_sender; |
| +} |
| + |
| JOW(jobject, PeerConnection_nativeGetSenders)(JNIEnv* jni, jobject j_pc) { |
| jclass j_array_list_class = FindClass(jni, "java/util/ArrayList"); |
| jmethodID j_array_list_ctor = |