| Index: talk/app/webrtc/java/src/org/webrtc/RtpReceiver.java | 
| diff --git a/talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java b/talk/app/webrtc/java/src/org/webrtc/RtpReceiver.java | 
| similarity index 63% | 
| copy from talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java | 
| copy to talk/app/webrtc/java/src/org/webrtc/RtpReceiver.java | 
| index f7032a739bdbb24ac93dc000b9a42fb11223cc40..597f4413342e70877d969338b2dd418a3beec0bb 100644 | 
| --- a/talk/app/webrtc/java/src/org/webrtc/CallSessionFileRotatingLogSink.java | 
| +++ b/talk/app/webrtc/java/src/org/webrtc/RtpReceiver.java | 
| @@ -27,31 +27,37 @@ | 
|  | 
| package org.webrtc; | 
|  | 
| -public class CallSessionFileRotatingLogSink { | 
| -  static { | 
| -    System.loadLibrary("jingle_peerconnection_so"); | 
| -  } | 
| +/** Java wrapper for a C++ RtpReceiverInterface. */ | 
| +public class RtpReceiver { | 
| +  final long nativeRtpReceiver; | 
| + | 
| +  private MediaStreamTrack cachedTrack; | 
|  | 
| -  private long nativeSink; | 
| +  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); | 
| +  } | 
|  | 
| -  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(nativeRtpReceiver); | 
| } | 
|  | 
| public void dispose() { | 
| -    if (nativeSink != 0) { | 
| -      nativeDeleteSink(nativeSink); | 
| -      nativeSink = 0; | 
| -    } | 
| +    cachedTrack.dispose(); | 
| +    free(nativeRtpReceiver); | 
| } | 
|  | 
| -  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); | 
| -} | 
| +  // This should increment the reference count of the track. | 
| +  // Will be released in dispose(). | 
| +  private static native long nativeGetTrack(long nativeRtpReceiver); | 
| + | 
| +  private static native String nativeId(long nativeRtpReceiver); | 
| + | 
| +  private static native void free(long nativeRtpReceiver); | 
| +}; | 
|  |