Update the android AppRTC to use PeerConnection Unified Plan API.
This updates AppRTC to use addTrack instead of addStream, and removes the use of onAddStream, because we no longer have to wait for this to be fired to set the remote track's video renderers. Bug: webrtc:8869 Change-Id: I1ecae684a9bc4b30512e8c5d717e72b52c589831 Reviewed-on: https://webrtc-review.googlesource.com/57840 Commit-Queue: Seth Hampson <shampson@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22318}
This commit is contained in:
@ -13,6 +13,9 @@ package org.webrtc;
|
||||
/** Java wrapper for a C++ MediaStreamTrackInterface. */
|
||||
@JNINamespace("webrtc::jni")
|
||||
public class MediaStreamTrack {
|
||||
public static final String AUDIO_TRACK_KIND = "audio";
|
||||
public static final String VIDEO_TRACK_KIND = "video";
|
||||
|
||||
/** Tracks MediaStreamTrackInterface.TrackState */
|
||||
public enum State {
|
||||
LIVE,
|
||||
@ -51,6 +54,21 @@ public class MediaStreamTrack {
|
||||
}
|
||||
}
|
||||
|
||||
/** Factory method to create an AudioTrack or VideoTrack subclass. */
|
||||
static MediaStreamTrack createMediaStreamTrack(long nativeTrack) {
|
||||
if (nativeTrack == 0) {
|
||||
return null;
|
||||
}
|
||||
String trackKind = nativeGetKind(nativeTrack);
|
||||
if (trackKind.equals(AUDIO_TRACK_KIND)) {
|
||||
return new AudioTrack(nativeTrack);
|
||||
} else if (trackKind.equals(VIDEO_TRACK_KIND)) {
|
||||
return new VideoTrack(nativeTrack);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
final long nativeTrack;
|
||||
|
||||
public MediaStreamTrack(long nativeTrack) {
|
||||
|
||||
@ -30,9 +30,8 @@ public class RtpReceiver {
|
||||
@CalledByNative
|
||||
public RtpReceiver(long nativeRtpReceiver) {
|
||||
this.nativeRtpReceiver = nativeRtpReceiver;
|
||||
long track = nativeGetTrack(nativeRtpReceiver);
|
||||
// We can assume that an RtpReceiver always has an associated track.
|
||||
cachedTrack = new MediaStreamTrack(track);
|
||||
long nativeTrack = nativeGetTrack(nativeRtpReceiver);
|
||||
cachedTrack = MediaStreamTrack.createMediaStreamTrack(nativeTrack);
|
||||
}
|
||||
|
||||
public MediaStreamTrack track() {
|
||||
|
||||
@ -23,9 +23,8 @@ public class RtpSender {
|
||||
@CalledByNative
|
||||
public RtpSender(long nativeRtpSender) {
|
||||
this.nativeRtpSender = nativeRtpSender;
|
||||
long track = nativeGetTrack(nativeRtpSender);
|
||||
// It may be possible for an RtpSender to be created without a track.
|
||||
cachedTrack = (track != 0) ? new MediaStreamTrack(track) : null;
|
||||
long nativeTrack = nativeGetTrack(nativeRtpSender);
|
||||
cachedTrack = MediaStreamTrack.createMediaStreamTrack(nativeTrack);
|
||||
|
||||
long nativeDtmfSender = nativeGetDtmfSender(nativeRtpSender);
|
||||
dtmfSender = (nativeDtmfSender != 0) ? new DtmfSender(nativeDtmfSender) : null;
|
||||
|
||||
Reference in New Issue
Block a user