Index: talk/app/webrtc/rtpsender.h |
diff --git a/talk/app/webrtc/rtpsender.h b/talk/app/webrtc/rtpsender.h |
index 374190932325bb9715ed4b477b61556177833935..f4e841dd4aeb5ebac33f9459e416b46d1f887fed 100644 |
--- a/talk/app/webrtc/rtpsender.h |
+++ b/talk/app/webrtc/rtpsender.h |
@@ -36,6 +36,7 @@ |
#include "talk/app/webrtc/mediastreamprovider.h" |
#include "talk/app/webrtc/rtpsenderinterface.h" |
+#include "talk/app/webrtc/statscollector.h" |
#include "talk/media/base/audiorenderer.h" |
#include "webrtc/base/basictypes.h" |
#include "webrtc/base/criticalsection.h" |
@@ -70,9 +71,15 @@ class LocalAudioSinkAdapter : public AudioTrackSinkInterface, |
class AudioRtpSender : public ObserverInterface, |
public rtc::RefCountedObject<RtpSenderInterface> { |
public: |
+ // StatsCollector provided so that Add/RemoveLocalAudioTrack can be called |
+ // at the appropriate times. |
AudioRtpSender(AudioTrackInterface* track, |
- uint32_t ssrc, |
- AudioProviderInterface* provider); |
+ const std::string& stream_id, |
+ AudioProviderInterface* provider, |
+ StatsCollector* stats); |
+ |
+ // Randomly generates id and stream_id. |
+ AudioRtpSender(AudioProviderInterface* provider, StatsCollector* stats); |
virtual ~AudioRtpSender(); |
@@ -85,18 +92,35 @@ class AudioRtpSender : public ObserverInterface, |
return track_.get(); |
} |
+ void SetSsrc(uint32_t ssrc) override; |
+ |
+ uint32_t ssrc() const override { return ssrc_; } |
+ |
+ cricket::MediaType type() const override { return cricket::MEDIA_TYPE_AUDIO; } |
pthatcher1
2015/10/22 07:34:14
Should this be media_type()?
Taylor Brandstetter
2015/10/22 19:26:42
Done.
|
+ |
std::string id() const override { return id_; } |
+ void set_stream_id(const std::string& stream_id) override { |
+ stream_id_ = stream_id; |
+ } |
+ std::string stream_id() const override { return stream_id_; } |
+ |
void Stop() override; |
private: |
- void Reconfigure(); |
+ bool ready_to_send() const { return track_ && ssrc_; } |
pthatcher1
2015/10/22 07:34:14
Since the transport code already has a ready_to_se
Taylor Brandstetter
2015/10/22 19:26:42
"sending" isn't really accurate since this method
|
+ // Helper function to construct options for |
+ // AudioProviderInterface::SetAudioSend. |
+ void SetAudioSend(); |
std::string id_; |
- rtc::scoped_refptr<AudioTrackInterface> track_; |
- uint32_t ssrc_; |
+ std::string stream_id_; |
AudioProviderInterface* provider_; |
- bool cached_track_enabled_; |
+ StatsCollector* stats_; |
+ rtc::scoped_refptr<AudioTrackInterface> track_; |
+ uint32_t ssrc_ = 0; |
+ bool cached_track_enabled_ = false; |
+ bool stopped_ = false; |
// Used to pass the data callback from the |track_| to the other end of |
// cricket::AudioRenderer. |
@@ -107,9 +131,12 @@ class VideoRtpSender : public ObserverInterface, |
public rtc::RefCountedObject<RtpSenderInterface> { |
public: |
VideoRtpSender(VideoTrackInterface* track, |
- uint32_t ssrc, |
+ const std::string& stream_id, |
VideoProviderInterface* provider); |
+ // Randomly generates id and stream_id. |
+ explicit VideoRtpSender(VideoProviderInterface* provider); |
+ |
virtual ~VideoRtpSender(); |
// ObserverInterface implementation |
@@ -121,18 +148,34 @@ class VideoRtpSender : public ObserverInterface, |
return track_.get(); |
} |
+ void SetSsrc(uint32_t ssrc) override; |
+ |
+ uint32_t ssrc() const override { return ssrc_; } |
+ |
+ cricket::MediaType type() const override { return cricket::MEDIA_TYPE_VIDEO; } |
+ |
std::string id() const override { return id_; } |
+ void set_stream_id(const std::string& stream_id) override { |
+ stream_id_ = stream_id; |
+ } |
+ std::string stream_id() const override { return stream_id_; } |
+ |
void Stop() override; |
private: |
- void Reconfigure(); |
+ bool ready_to_send() const { return track_ && ssrc_; } |
+ // Helper function to construct options for |
+ // VideoProviderInterface::SetVideoSend. |
+ void SetVideoSend(); |
std::string id_; |
- rtc::scoped_refptr<VideoTrackInterface> track_; |
- uint32_t ssrc_; |
+ std::string stream_id_; |
VideoProviderInterface* provider_; |
- bool cached_track_enabled_; |
+ rtc::scoped_refptr<VideoTrackInterface> track_; |
+ uint32_t ssrc_ = 0; |
+ bool cached_track_enabled_ = false; |
+ bool stopped_ = false; |
}; |
} // namespace webrtc |