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:

committed by
Commit Bot

parent
999afa9cb8
commit
fa77ba6af1
1
AUTHORS
1
AUTHORS
@ -14,6 +14,7 @@ Chris Tserng <tserng@amazon.com>
|
||||
Christophe Dumez <ch.dumez@samsung.com>
|
||||
Cody Barnes <conceptgenesis@gmail.com>
|
||||
Colin Plumb
|
||||
Cyril Lashkevich <notorca@gmail.com>
|
||||
David Porter <david@porter.me>
|
||||
Dax Booysen <dax@younow.com>
|
||||
Danail Kirov <dkirovbroadsoft@gmail.com>
|
||||
|
@ -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);
|
||||
|
@ -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(
|
||||
|
@ -35,6 +35,9 @@ RTC_OBJC_EXPORT
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) RTCMediaStreamTrack *track;
|
||||
|
||||
/** IDs of streams associated with the RTP sender */
|
||||
@property(nonatomic, copy) NSArray<NSString *> *streamIds;
|
||||
|
||||
/** The RTCDtmfSender accociated with the RTP sender. */
|
||||
@property(nonatomic, readonly, nullable) id<RTCDtmfSender> dtmfSender;
|
||||
|
||||
|
@ -57,6 +57,23 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)streamIds {
|
||||
std::vector<std::string> nativeStreamIds = _nativeRtpSender->stream_ids();
|
||||
NSMutableArray *streamIds = [NSMutableArray arrayWithCapacity:nativeStreamIds.size()];
|
||||
for (const auto &s : nativeStreamIds) {
|
||||
[streamIds addObject:[NSString stringForStdString:s]];
|
||||
}
|
||||
return streamIds;
|
||||
}
|
||||
|
||||
- (void)setStreamIds:(NSArray<NSString *> *)streamIds {
|
||||
std::vector<std::string> nativeStreamIds;
|
||||
for (NSString *streamId in streamIds) {
|
||||
nativeStreamIds.push_back([streamId UTF8String]);
|
||||
}
|
||||
_nativeRtpSender->SetStreams(nativeStreamIds);
|
||||
}
|
||||
|
||||
- (NSString *)description {
|
||||
return [NSString stringWithFormat:@"RTCRtpSender {\n senderId: %@\n}",
|
||||
self.senderId];
|
||||
|
Reference in New Issue
Block a user