Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ James H. Brown <jbrown@burgoyne.com>
Jan Grulich <grulja@gmail.com>
Jan Kalab <pitlicek@gmail.com>
Jens Nielsen <jens.nielsen@berotec.se>
Jesús Leganés-Combarro <piranna@gmail.com>
Jiawei Ou <jiawei.ou@gmail.com>
Jie Mao <maojie0924@gmail.com>
Jiwon Kim <jwkim0000@gmail.com>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1316,6 +1316,9 @@ public void onRenegotiationNeeded() {

@Override
public void onAddTrack(final RtpReceiver receiver, final MediaStream[] mediaStreams) {}

@Override
public void onRemoveTrack(final RtpReceiver receiver) {}
}

// Implementation detail: handle offer creation/signaling and answer setting,
Expand Down
9 changes: 8 additions & 1 deletion sdk/android/api/org/webrtc/PeerConnection.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,14 @@ default void onSelectedCandidatePairChanged(CandidatePairChangeEvent event) {}
* Triggered when a new track is signaled by the remote peer, as a result of
* setRemoteDescription.
*/
@CalledByNative("Observer") void onAddTrack(RtpReceiver receiver, MediaStream[] mediaStreams);
@CalledByNative("Observer")
default void onAddTrack(RtpReceiver receiver, MediaStream[] mediaStreams){};

/**
* Triggered when a previously added remote track is removed by the remote
* peer, as a result of setRemoteDescription.
*/
@CalledByNative("Observer") default void onRemoveTrack(RtpReceiver receiver){};

/**
* Triggered when the signaling from SetRemoteDescription indicates that a transceiver
Expand Down
10 changes: 10 additions & 0 deletions sdk/android/src/jni/pc/peer_connection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,16 @@ void PeerConnectionObserverJni::OnAddTrack(
NativeToJavaMediaStreamArray(env, streams));
}

void PeerConnectionObserverJni::OnRemoveTrack(
rtc::scoped_refptr<RtpReceiverInterface> receiver) {
JNIEnv* env = AttachCurrentThreadIfNeeded();
ScopedJavaLocalRef<jobject> j_rtp_receiver =
NativeToJavaRtpReceiver(env, receiver);
rtp_receivers_.emplace_back(env, j_rtp_receiver);

Java_Observer_onRemoveTrack(env, j_observer_global_, j_rtp_receiver);
}

void PeerConnectionObserverJni::OnTrack(
rtc::scoped_refptr<RtpTransceiverInterface> transceiver) {
JNIEnv* env = AttachCurrentThreadIfNeeded();
Expand Down
2 changes: 2 additions & 0 deletions sdk/android/src/jni/pc/peer_connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ class PeerConnectionObserverJni : public PeerConnectionObserver {
streams) override;
void OnTrack(
rtc::scoped_refptr<RtpTransceiverInterface> transceiver) override;
void OnRemoveTrack(
rtc::scoped_refptr<RtpReceiverInterface> receiver) override;

private:
typedef std::map<MediaStreamInterface*, JavaMediaStream>
Expand Down