Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Unified Diff: talk/app/webrtc/java/src/org/webrtc/RtpSender.java

Issue 1368143002: Java binding for RtpSender/RtpReceiver. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Getting rid of obsolete methods, and using unmodifiableList. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: talk/app/webrtc/java/src/org/webrtc/RtpSender.java
diff --git a/talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java b/talk/app/webrtc/java/src/org/webrtc/RtpSender.java
similarity index 51%
copy from talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java
copy to talk/app/webrtc/java/src/org/webrtc/RtpSender.java
index f7032a739bdbb24ac93dc000b9a42fb11223cc40..37357c0657d0c77e93e9b6124b67a89fb1a1ddbf 100644
--- a/talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java
+++ b/talk/app/webrtc/java/src/org/webrtc/RtpSender.java
@@ -27,31 +27,53 @@
package org.webrtc;
-public class CallSessionFileRotatingLogSink {
- static {
- System.loadLibrary("jingle_peerconnection_so");
+/** Java wrapper for a C++ RtpSenderInterface. */
+public class RtpSender {
+ final long nativeRtpSender;
+
+ private MediaStreamTrack cachedTrack;
+
+ 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);
}
- private long nativeSink;
+ // NOTE: This should not be called with a track that's already used by
+ // another RtpSender, because then it would be double-disposed.
+ public void setTrack(MediaStreamTrack track) {
+ if (cachedTrack != null) {
+ cachedTrack.dispose();
+ }
+ cachedTrack = track;
+ nativeSetTrack(nativeRtpSender, (track == null) ? 0 : track.nativeTrack);
+ }
- public static byte[] getLogData(String dirPath) {
- return nativeGetLogData(dirPath);
+ public MediaStreamTrack track() {
+ return cachedTrack;
}
- public CallSessionFileRotatingLogSink(
- String dirPath, int maxFileSize, Logging.Severity severity) {
- nativeSink = nativeAddSink(dirPath, maxFileSize, severity.ordinal());
+ public String id() {
+ return nativeId(nativeRtpSender);
}
public void dispose() {
- if (nativeSink != 0) {
- nativeDeleteSink(nativeSink);
- nativeSink = 0;
+ if (cachedTrack != null) {
+ cachedTrack.dispose();
}
+ free(nativeRtpSender);
}
- private static native long nativeAddSink(
- String dirPath, int maxFileSize, int severity);
- private static native void nativeDeleteSink(long nativeSink);
- private static native byte[] nativeGetLogData(String dirPath);
+ private static native void nativeSetTrack(long nativeRtpSender,
+ long nativeTrack);
+
+ // This should increment the reference count of the track.
+ // Will be released in dispose() or setTrack().
+ private static native long nativeGetTrack(long nativeRtpSender);
+
+ private static native String nativeId(long nativeRtpSender);
+
+ private static native void free(long nativeRtpSender);
}
+;

Powered by Google App Engine
This is Rietveld 408576698