Index: webrtc/sdk/android/api/org/webrtc/RtpSender.java |
diff --git a/webrtc/sdk/android/api/org/webrtc/RtpSender.java b/webrtc/sdk/android/api/org/webrtc/RtpSender.java |
index 12df4e271423b19cd7461ea67067afdc78544ec4..358b87dff81fc4ec2388e9838bd30fa369063ddd 100644 |
--- a/webrtc/sdk/android/api/org/webrtc/RtpSender.java |
+++ b/webrtc/sdk/android/api/org/webrtc/RtpSender.java |
@@ -17,11 +17,16 @@ public class RtpSender { |
private MediaStreamTrack cachedTrack; |
private boolean ownsTrack = true; |
+ private final DtmfSender dtmfSender; |
+ |
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) ? null : new MediaStreamTrack(track); |
+ cachedTrack = (track != 0) ? new MediaStreamTrack(track) : null; |
+ |
+ long nativeDtmfSender = nativeGetDtmfSender(nativeRtpSender); |
+ dtmfSender = (nativeDtmfSender != 0) ? new DtmfSender(nativeDtmfSender) : null; |
} |
// If |takeOwnership| is true, the RtpSender takes ownership of the track |
@@ -57,7 +62,14 @@ public class RtpSender { |
return nativeId(nativeRtpSender); |
} |
+ public DtmfSender dtmf() { |
+ return dtmfSender; |
+ } |
+ |
public void dispose() { |
+ if (dtmfSender != null) { |
+ dtmfSender.dispose(); |
+ } |
if (cachedTrack != null && ownsTrack) { |
cachedTrack.dispose(); |
} |
@@ -70,6 +82,10 @@ public class RtpSender { |
// Will be released in dispose() or setTrack(). |
private static native long nativeGetTrack(long nativeRtpSender); |
+ // This should increment the reference count of the DTMF sender. |
+ // Will be released in dispose(). |
+ private static native long nativeGetDtmfSender(long nativeRtpSender); |
+ |
private static native boolean nativeSetParameters(long nativeRtpSender, RtpParameters parameters); |
private static native RtpParameters nativeGetParameters(long nativeRtpSender); |