Index: webrtc/api/java/src/org/webrtc/PeerConnection.java |
diff --git a/webrtc/api/java/src/org/webrtc/PeerConnection.java b/webrtc/api/java/src/org/webrtc/PeerConnection.java |
deleted file mode 100644 |
index 3808eb4893a4d2a3a3d89039600def42328240ae..0000000000000000000000000000000000000000 |
--- a/webrtc/api/java/src/org/webrtc/PeerConnection.java |
+++ /dev/null |
@@ -1,329 +0,0 @@ |
-/* |
- * Copyright 2013 The WebRTC project authors. All Rights Reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
- |
-package org.webrtc; |
- |
-import java.util.Collections; |
-import java.util.LinkedList; |
-import java.util.List; |
- |
-/** |
- * Java-land version of the PeerConnection APIs; wraps the C++ API |
- * http://www.webrtc.org/reference/native-apis, which in turn is inspired by the |
- * JS APIs: http://dev.w3.org/2011/webrtc/editor/webrtc.html and |
- * http://www.w3.org/TR/mediacapture-streams/ |
- */ |
-public class PeerConnection { |
- static { |
- System.loadLibrary("jingle_peerconnection_so"); |
- } |
- |
- /** Tracks PeerConnectionInterface::IceGatheringState */ |
- public enum IceGatheringState { NEW, GATHERING, COMPLETE }; |
- |
- |
- /** Tracks PeerConnectionInterface::IceConnectionState */ |
- public enum IceConnectionState { |
- NEW, CHECKING, CONNECTED, COMPLETED, FAILED, DISCONNECTED, CLOSED |
- }; |
- |
- /** Tracks PeerConnectionInterface::SignalingState */ |
- public enum SignalingState { |
- STABLE, HAVE_LOCAL_OFFER, HAVE_LOCAL_PRANSWER, HAVE_REMOTE_OFFER, |
- HAVE_REMOTE_PRANSWER, CLOSED |
- }; |
- |
- /** Java version of PeerConnectionObserver. */ |
- public static interface Observer { |
- /** Triggered when the SignalingState changes. */ |
- public void onSignalingChange(SignalingState newState); |
- |
- /** Triggered when the IceConnectionState changes. */ |
- public void onIceConnectionChange(IceConnectionState newState); |
- |
- /** Triggered when the ICE connection receiving status changes. */ |
- public void onIceConnectionReceivingChange(boolean receiving); |
- |
- /** Triggered when the IceGatheringState changes. */ |
- public void onIceGatheringChange(IceGatheringState newState); |
- |
- /** Triggered when a new ICE candidate has been found. */ |
- public void onIceCandidate(IceCandidate candidate); |
- |
- /** Triggered when some ICE candidates have been removed. */ |
- public void onIceCandidatesRemoved(IceCandidate[] candidates); |
- |
- /** Triggered when media is received on a new stream from remote peer. */ |
- public void onAddStream(MediaStream stream); |
- |
- /** Triggered when a remote peer close a stream. */ |
- public void onRemoveStream(MediaStream stream); |
- |
- /** Triggered when a remote peer opens a DataChannel. */ |
- public void onDataChannel(DataChannel dataChannel); |
- |
- /** Triggered when renegotiation is necessary. */ |
- public void onRenegotiationNeeded(); |
- } |
- |
- /** Java version of PeerConnectionInterface.IceServer. */ |
- public static class IceServer { |
- public final String uri; |
- public final String username; |
- public final String password; |
- |
- /** Convenience constructor for STUN servers. */ |
- public IceServer(String uri) { |
- this(uri, "", ""); |
- } |
- |
- public IceServer(String uri, String username, String password) { |
- this.uri = uri; |
- this.username = username; |
- this.password = password; |
- } |
- |
- public String toString() { |
- return uri + "[" + username + ":" + password + "]"; |
- } |
- } |
- |
- /** Java version of PeerConnectionInterface.IceTransportsType */ |
- public enum IceTransportsType { |
- NONE, RELAY, NOHOST, ALL |
- }; |
- |
- /** Java version of PeerConnectionInterface.BundlePolicy */ |
- public enum BundlePolicy { |
- BALANCED, MAXBUNDLE, MAXCOMPAT |
- }; |
- |
- /** Java version of PeerConnectionInterface.RtcpMuxPolicy */ |
- public enum RtcpMuxPolicy { |
- NEGOTIATE, REQUIRE |
- }; |
- |
- /** Java version of PeerConnectionInterface.TcpCandidatePolicy */ |
- public enum TcpCandidatePolicy { |
- ENABLED, DISABLED |
- }; |
- |
- /** Java version of PeerConnectionInterface.CandidateNetworkPolicy */ |
- public enum CandidateNetworkPolicy { |
- ALL, LOW_COST |
- }; |
- |
- /** Java version of rtc::KeyType */ |
- public enum KeyType { |
- RSA, ECDSA |
- } |
- |
- /** Java version of PeerConnectionInterface.ContinualGatheringPolicy */ |
- public enum ContinualGatheringPolicy { |
- GATHER_ONCE, GATHER_CONTINUALLY |
- } |
- |
- /** Java version of PeerConnectionInterface.RTCConfiguration */ |
- public static class RTCConfiguration { |
- public IceTransportsType iceTransportsType; |
- public List<IceServer> iceServers; |
- public BundlePolicy bundlePolicy; |
- public RtcpMuxPolicy rtcpMuxPolicy; |
- public TcpCandidatePolicy tcpCandidatePolicy; |
- public CandidateNetworkPolicy candidateNetworkPolicy; |
- public int audioJitterBufferMaxPackets; |
- public boolean audioJitterBufferFastAccelerate; |
- public int iceConnectionReceivingTimeout; |
- public int iceBackupCandidatePairPingInterval; |
- public KeyType keyType; |
- public ContinualGatheringPolicy continualGatheringPolicy; |
- public int iceCandidatePoolSize; |
- |
- public RTCConfiguration(List<IceServer> iceServers) { |
- iceTransportsType = IceTransportsType.ALL; |
- bundlePolicy = BundlePolicy.BALANCED; |
- rtcpMuxPolicy = RtcpMuxPolicy.NEGOTIATE; |
- tcpCandidatePolicy = TcpCandidatePolicy.ENABLED; |
- candidateNetworkPolicy = candidateNetworkPolicy.ALL; |
- this.iceServers = iceServers; |
- audioJitterBufferMaxPackets = 50; |
- audioJitterBufferFastAccelerate = false; |
- iceConnectionReceivingTimeout = -1; |
- iceBackupCandidatePairPingInterval = -1; |
- keyType = KeyType.ECDSA; |
- continualGatheringPolicy = ContinualGatheringPolicy.GATHER_ONCE; |
- iceCandidatePoolSize = 0; |
- } |
- }; |
- |
- private final List<MediaStream> localStreams; |
- private final long nativePeerConnection; |
- private final long nativeObserver; |
- private List<RtpSender> senders; |
- private List<RtpReceiver> receivers; |
- |
- PeerConnection(long nativePeerConnection, long nativeObserver) { |
- this.nativePeerConnection = nativePeerConnection; |
- this.nativeObserver = nativeObserver; |
- localStreams = new LinkedList<MediaStream>(); |
- senders = new LinkedList<RtpSender>(); |
- receivers = new LinkedList<RtpReceiver>(); |
- } |
- |
- // JsepInterface. |
- public native SessionDescription getLocalDescription(); |
- |
- public native SessionDescription getRemoteDescription(); |
- |
- public native DataChannel createDataChannel( |
- String label, DataChannel.Init init); |
- |
- public native void createOffer( |
- SdpObserver observer, MediaConstraints constraints); |
- |
- public native void createAnswer( |
- SdpObserver observer, MediaConstraints constraints); |
- |
- public native void setLocalDescription( |
- SdpObserver observer, SessionDescription sdp); |
- |
- public native void setRemoteDescription( |
- SdpObserver observer, SessionDescription sdp); |
- |
- public native boolean setConfiguration(RTCConfiguration config); |
- |
- public boolean addIceCandidate(IceCandidate candidate) { |
- return nativeAddIceCandidate( |
- candidate.sdpMid, candidate.sdpMLineIndex, candidate.sdp); |
- } |
- |
- public boolean removeIceCandidates(final IceCandidate[] candidates) { |
- return nativeRemoveIceCandidates(candidates); |
- } |
- |
- public boolean addStream(MediaStream stream) { |
- boolean ret = nativeAddLocalStream(stream.nativeStream); |
- if (!ret) { |
- return false; |
- } |
- localStreams.add(stream); |
- return true; |
- } |
- |
- public void removeStream(MediaStream stream) { |
- nativeRemoveLocalStream(stream.nativeStream); |
- localStreams.remove(stream); |
- } |
- |
- public RtpSender createSender(String kind, String stream_id) { |
- RtpSender new_sender = nativeCreateSender(kind, stream_id); |
- if (new_sender != null) { |
- senders.add(new_sender); |
- } |
- return new_sender; |
- } |
- |
- // Note that calling getSenders will dispose of the senders previously |
- // returned (and same goes for getReceivers). |
- public List<RtpSender> getSenders() { |
- for (RtpSender sender : senders) { |
- sender.dispose(); |
- } |
- senders = nativeGetSenders(); |
- return Collections.unmodifiableList(senders); |
- } |
- |
- public List<RtpReceiver> getReceivers() { |
- for (RtpReceiver receiver : receivers) { |
- receiver.dispose(); |
- } |
- receivers = nativeGetReceivers(); |
- return Collections.unmodifiableList(receivers); |
- } |
- |
- public boolean getStats(StatsObserver observer, MediaStreamTrack track) { |
- return nativeGetStats(observer, (track == null) ? 0 : track.nativeTrack); |
- } |
- |
- // Starts recording an RTC event log. Ownership of the file is transfered to |
- // the native code. If an RTC event log is already being recorded, it will be |
- // stopped and a new one will start using the provided file. Logging will |
- // continue until the stopRtcEventLog function is called. The max_size_bytes |
- // argument is ignored, it is added for future use. |
- public boolean startRtcEventLog( |
- int file_descriptor, long max_size_bytes) { |
- return nativeStartRtcEventLog( |
- nativePeerConnection, file_descriptor, max_size_bytes); |
- } |
- |
- // Stops recording an RTC event log. If no RTC event log is currently being |
- // recorded, this call will have no effect. |
- public void stopRtcEventLog() { |
- nativeStopRtcEventLog(nativePeerConnection); |
- } |
- |
- // TODO(fischman): add support for DTMF-related methods once that API |
- // stabilizes. |
- public native SignalingState signalingState(); |
- |
- public native IceConnectionState iceConnectionState(); |
- |
- public native IceGatheringState iceGatheringState(); |
- |
- public native void close(); |
- |
- public void dispose() { |
- close(); |
- for (MediaStream stream : localStreams) { |
- nativeRemoveLocalStream(stream.nativeStream); |
- stream.dispose(); |
- } |
- localStreams.clear(); |
- for (RtpSender sender : senders) { |
- sender.dispose(); |
- } |
- senders.clear(); |
- for (RtpReceiver receiver : receivers) { |
- receiver.dispose(); |
- } |
- receivers.clear(); |
- freePeerConnection(nativePeerConnection); |
- freeObserver(nativeObserver); |
- } |
- |
- private static native void freePeerConnection(long nativePeerConnection); |
- |
- private static native void freeObserver(long nativeObserver); |
- |
- private native boolean nativeAddIceCandidate( |
- String sdpMid, int sdpMLineIndex, String iceCandidateSdp); |
- |
- private native boolean nativeRemoveIceCandidates(final IceCandidate[] candidates); |
- |
- private native boolean nativeAddLocalStream(long nativeStream); |
- |
- private native void nativeRemoveLocalStream(long nativeStream); |
- |
- private native boolean nativeGetStats( |
- StatsObserver observer, long nativeTrack); |
- |
- private native RtpSender nativeCreateSender(String kind, String stream_id); |
- |
- private native List<RtpSender> nativeGetSenders(); |
- |
- private native List<RtpReceiver> nativeGetReceivers(); |
- |
- private static native boolean nativeStartRtcEventLog( |
- long nativePeerConnection, int file_descriptor, long max_size_bytes); |
- |
- private static native void nativeStopRtcEventLog(long nativePeerConnection); |
- |
-} |