SetStreams API of RtpSender wrapped for iOS and Android

Bug: webrtc:10129
Change-Id: I36ea0110de655bbffa2bd18a024abd15a2136838
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155983
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29405}
This commit is contained in:
Cyril Lashkevich
2019-10-08 13:06:15 +00:00
committed by Commit Bot
parent 999afa9cb8
commit fa77ba6af1
5 changed files with 56 additions and 0 deletions

View File

@ -11,6 +11,7 @@
package org.webrtc;
import android.support.annotation.Nullable;
import java.util.List;
/** Java wrapper for a C++ RtpSenderInterface. */
public class RtpSender {
@ -62,6 +63,16 @@ public class RtpSender {
return cachedTrack;
}
public void setStreams(List<String> streamIds) {
checkRtpSenderExists();
nativeSetStreams(nativeRtpSender, streamIds);
}
public List<String> getStreams() {
checkRtpSenderExists();
return nativeGetStreams(nativeRtpSender);
}
public boolean setParameters(RtpParameters parameters) {
checkRtpSenderExists();
return nativeSetParameters(nativeRtpSender, parameters);
@ -117,6 +128,10 @@ public class RtpSender {
// Will be released in dispose() or setTrack().
private static native long nativeGetTrack(long rtpSender);
private static native void nativeSetStreams(long rtpSender, List<String> streamIds);
private static native List<String> nativeGetStreams(long rtpSender);
// This should increment the reference count of the DTMF sender.
// Will be released in dispose().
private static native long nativeGetDtmfSender(long rtpSender);

View File

@ -45,6 +45,26 @@ jlong JNI_RtpSender_GetTrack(JNIEnv* jni,
.release());
}
static void JNI_RtpSender_SetStreams(
JNIEnv* jni,
jlong j_rtp_sender_pointer,
const JavaParamRef<jobject>& j_stream_labels) {
reinterpret_cast<RtpSenderInterface*>(j_rtp_sender_pointer)
->SetStreams(JavaListToNativeVector<std::string, jstring>(
jni, j_stream_labels, &JavaToNativeString));
}
ScopedJavaLocalRef<jobject> JNI_RtpSender_GetStreams(
JNIEnv* jni,
jlong j_rtp_sender_pointer) {
ScopedJavaLocalRef<jstring> (*convert_function)(JNIEnv*, const std::string&) =
&NativeToJavaString;
return NativeToJavaList(
jni,
reinterpret_cast<RtpSenderInterface*>(j_rtp_sender_pointer)->stream_ids(),
convert_function);
}
jlong JNI_RtpSender_GetDtmfSender(JNIEnv* jni,
jlong j_rtp_sender_pointer) {
return jlongFromPointer(