Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNPUTmice/Conversations.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/eu/siacs/conversations/xmpp/jingle/TrackWrapper.java')
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/TrackWrapper.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/TrackWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/TrackWrapper.java
new file mode 100644
index 000000000..4e2952127
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/TrackWrapper.java
@@ -0,0 +1,31 @@
+package eu.siacs.conversations.xmpp.jingle;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+
+import org.webrtc.MediaStreamTrack;
+import org.webrtc.PeerConnection;
+import org.webrtc.RtpSender;
+
+class TrackWrapper<T extends MediaStreamTrack> {
+ private final T track;
+ private final RtpSender rtpSender;
+
+ private TrackWrapper(final T track, final RtpSender rtpSender) {
+ Preconditions.checkNotNull(track);
+ Preconditions.checkNotNull(rtpSender);
+ this.track = track;
+ this.rtpSender = rtpSender;
+ }
+
+ public static <T extends MediaStreamTrack> TrackWrapper<T> addTrack(
+ final PeerConnection peerConnection, final T mediaStreamTrack) {
+ final RtpSender rtpSender = peerConnection.addTrack(mediaStreamTrack);
+ return new TrackWrapper<>(mediaStreamTrack, rtpSender);
+ }
+
+ public static <T extends MediaStreamTrack> Optional<T> get(
+ final TrackWrapper<T> trackWrapper) {
+ return trackWrapper == null ? Optional.absent() : Optional.of(trackWrapper.track);
+ }
+}