Files
platform-external-webrtc/sdk/android/api/org/webrtc/RtpReceiver.java
Saurav Das 934afc6ba1 Deprecate RtpReceiver's SetParameters method
This removes the SetParameters method from AudioRtpReceiver and Video
RtpReceiver, which is currently not used and is not part of the
specifications.


Bug: webrtc:11111
Change-Id: I6f67773bfef2d4b51e9ab670bde17b5fbf5f94c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159307
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Saurav Das <dinosaurav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29995}
2019-12-03 19:50:42 +00:00

93 lines
3.0 KiB
Java

/*
* Copyright 2015 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 android.support.annotation.Nullable;
import org.webrtc.MediaStreamTrack;
/** Java wrapper for a C++ RtpReceiverInterface. */
public class RtpReceiver {
/** Java wrapper for a C++ RtpReceiverObserverInterface*/
public static interface Observer {
// Called when the first audio or video packet is received.
@CalledByNative("Observer")
public void onFirstPacketReceived(MediaStreamTrack.MediaType media_type);
}
private long nativeRtpReceiver;
private long nativeObserver;
@Nullable private MediaStreamTrack cachedTrack;
@CalledByNative
public RtpReceiver(long nativeRtpReceiver) {
this.nativeRtpReceiver = nativeRtpReceiver;
long nativeTrack = nativeGetTrack(nativeRtpReceiver);
cachedTrack = MediaStreamTrack.createMediaStreamTrack(nativeTrack);
}
@Nullable
public MediaStreamTrack track() {
return cachedTrack;
}
public RtpParameters getParameters() {
checkRtpReceiverExists();
return nativeGetParameters(nativeRtpReceiver);
}
public String id() {
checkRtpReceiverExists();
return nativeGetId(nativeRtpReceiver);
}
@CalledByNative
public void dispose() {
checkRtpReceiverExists();
cachedTrack.dispose();
if (nativeObserver != 0) {
nativeUnsetObserver(nativeRtpReceiver, nativeObserver);
nativeObserver = 0;
}
JniCommon.nativeReleaseRef(nativeRtpReceiver);
nativeRtpReceiver = 0;
}
public void SetObserver(Observer observer) {
checkRtpReceiverExists();
// Unset the existing one before setting a new one.
if (nativeObserver != 0) {
nativeUnsetObserver(nativeRtpReceiver, nativeObserver);
}
nativeObserver = nativeSetObserver(nativeRtpReceiver, observer);
}
public void setFrameDecryptor(FrameDecryptor frameDecryptor) {
checkRtpReceiverExists();
nativeSetFrameDecryptor(nativeRtpReceiver, frameDecryptor.getNativeFrameDecryptor());
}
private void checkRtpReceiverExists() {
if (nativeRtpReceiver == 0) {
throw new IllegalStateException("RtpReceiver has been disposed.");
}
}
// This should increment the reference count of the track.
// Will be released in dispose().
private static native long nativeGetTrack(long rtpReceiver);
private static native RtpParameters nativeGetParameters(long rtpReceiver);
private static native String nativeGetId(long rtpReceiver);
private static native long nativeSetObserver(long rtpReceiver, Observer observer);
private static native void nativeUnsetObserver(long rtpReceiver, long nativeObserver);
private static native void nativeSetFrameDecryptor(long rtpReceiver, long nativeFrameDecryptor);
};