Forward the SignalFirstPacketReceived to RtpReceiver.

The RtpReceiverObserverInterface is created.
The SignalFirstPacketReceived will be forwarded from BaseChannel to WebRtcSession.
WebRtcSession will forward SignalFirstAudioPacketReceived and SignalFirstVideoPacketReceived to the RtpReceiverInterface.
The application can listen to the Signal by implementing and registering a RtpReceiverObserver.

Review-Url: https://codereview.webrtc.org/1999853002
Cr-Commit-Position: refs/heads/master@{#13139}
This commit is contained in:
zhihuang
2016-06-14 11:47:14 -07:00
committed by Commit bot
parent 9a38cabf24
commit 184a3fd648
8 changed files with 183 additions and 2 deletions

View File

@ -20,9 +20,18 @@
#include "webrtc/api/proxy.h"
#include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/pc/mediasession.h"
namespace webrtc {
class RtpReceiverObserverInterface {
public:
virtual void OnFirstPacketReceived(cricket::MediaType media_type) = 0;
protected:
virtual ~RtpReceiverObserverInterface() {}
};
class RtpReceiverInterface : public rtc::RefCountInterface {
public:
virtual rtc::scoped_refptr<MediaStreamTrackInterface> track() const = 0;
@ -37,6 +46,10 @@ class RtpReceiverInterface : public rtc::RefCountInterface {
virtual RtpParameters GetParameters() const = 0;
virtual bool SetParameters(const RtpParameters& parameters) = 0;
virtual void SetObserver(RtpReceiverObserverInterface* observer) = 0;
virtual cricket::MediaType media_type() = 0;
protected:
virtual ~RtpReceiverInterface() {}
};
@ -47,6 +60,8 @@ PROXY_CONSTMETHOD0(rtc::scoped_refptr<MediaStreamTrackInterface>, track)
PROXY_CONSTMETHOD0(std::string, id)
PROXY_CONSTMETHOD0(RtpParameters, GetParameters);
PROXY_METHOD1(bool, SetParameters, const RtpParameters&)
PROXY_METHOD1(void, SetObserver, RtpReceiverObserverInterface*);
PROXY_METHOD0(cricket::MediaType, media_type);
END_SIGNALING_PROXY()
} // namespace webrtc