| Index: webrtc/sdk/android/src/jni/pc/peerconnectionobserver_jni.h
|
| diff --git a/webrtc/sdk/android/src/jni/pc/peerconnectionobserver_jni.h b/webrtc/sdk/android/src/jni/pc/peerconnectionobserver_jni.h
|
| index 2d9d749a6b2014f43820549c06da9d85d400d107..aef5af3fb27c2b7fc24633d6496ed375e196d909 100644
|
| --- a/webrtc/sdk/android/src/jni/pc/peerconnectionobserver_jni.h
|
| +++ b/webrtc/sdk/android/src/jni/pc/peerconnectionobserver_jni.h
|
| @@ -11,6 +11,7 @@
|
| #ifndef WEBRTC_SDK_ANDROID_SRC_JNI_PC_PEERCONNECTIONOBSERVER_JNI_H_
|
| #define WEBRTC_SDK_ANDROID_SRC_JNI_PC_PEERCONNECTIONOBSERVER_JNI_H_
|
|
|
| +#include <webrtc/pc/mediastreamobserver.h>
|
| #include <map>
|
| #include <memory>
|
| #include <vector>
|
| @@ -24,7 +25,8 @@ namespace webrtc_jni {
|
| // Adapter between the C++ PeerConnectionObserver interface and the Java
|
| // PeerConnection.Observer interface. Wraps an instance of the Java interface
|
| // and dispatches C++ callbacks to Java.
|
| -class PeerConnectionObserverJni : public webrtc::PeerConnectionObserver {
|
| +class PeerConnectionObserverJni : public webrtc::PeerConnectionObserver,
|
| + public sigslot::has_slots<> {
|
| public:
|
| PeerConnectionObserverJni(JNIEnv* jni, jobject j_observer);
|
| virtual ~PeerConnectionObserverJni();
|
| @@ -59,11 +61,11 @@ class PeerConnectionObserverJni : public webrtc::PeerConnectionObserver {
|
| private:
|
| typedef std::map<webrtc::MediaStreamInterface*, jobject>
|
| NativeToJavaStreamsMap;
|
| - typedef std::map<webrtc::RtpReceiverInterface*, jobject>
|
| - NativeToJavaRtpReceiverMap;
|
| + typedef std::map<webrtc::MediaStreamTrackInterface*, jobject>
|
| + NativeToJavaMediaTrackMap;
|
|
|
| void DisposeRemoteStream(const NativeToJavaStreamsMap::iterator& it);
|
| - void DisposeRtpReceiver(const NativeToJavaRtpReceiverMap::iterator& it);
|
| + void DisposeRemoteTrack(const NativeToJavaMediaTrackMap::iterator& it);
|
|
|
| // If the NativeToJavaStreamsMap contains the stream, return it.
|
| // Otherwise, create a new Java MediaStream.
|
| @@ -76,6 +78,15 @@ class PeerConnectionObserverJni : public webrtc::PeerConnectionObserver {
|
| const std::vector<rtc::scoped_refptr<webrtc::MediaStreamInterface>>&
|
| streams);
|
|
|
| + void OnAudioTrackAdded(webrtc::AudioTrackInterface* track,
|
| + webrtc::MediaStreamInterface* stream);
|
| + void OnVideoTrackAdded(webrtc::VideoTrackInterface* track,
|
| + webrtc::MediaStreamInterface* stream);
|
| + void OnAudioTrackRemoved(webrtc::AudioTrackInterface* track,
|
| + webrtc::MediaStreamInterface* stream);
|
| + void OnVideoTrackRemoved(webrtc::VideoTrackInterface* track,
|
| + webrtc::MediaStreamInterface* stream);
|
| +
|
| const ScopedGlobalRef<jobject> j_observer_global_;
|
| const ScopedGlobalRef<jclass> j_observer_class_;
|
| const ScopedGlobalRef<jclass> j_media_stream_class_;
|
| @@ -86,13 +97,12 @@ class PeerConnectionObserverJni : public webrtc::PeerConnectionObserver {
|
| const jmethodID j_video_track_ctor_;
|
| const ScopedGlobalRef<jclass> j_data_channel_class_;
|
| const jmethodID j_data_channel_ctor_;
|
| - const ScopedGlobalRef<jclass> j_rtp_receiver_class_;
|
| - const jmethodID j_rtp_receiver_ctor_;
|
| // C++ -> Java remote streams. The stored jobects are global refs and must be
|
| // manually deleted upon removal. Use DisposeRemoteStream().
|
| NativeToJavaStreamsMap remote_streams_;
|
| - NativeToJavaRtpReceiverMap rtp_receivers_;
|
| std::unique_ptr<MediaConstraintsJni> constraints_;
|
| + std::vector<std::unique_ptr<webrtc::MediaStreamObserver>> stream_observers_;
|
| + NativeToJavaMediaTrackMap remote_tracks_;
|
| };
|
|
|
| } // namespace webrtc_jni
|
|
|