Index: webrtc/api/rtpsender.h |
diff --git a/webrtc/api/rtpsender.h b/webrtc/api/rtpsender.h |
index 6c0592148bb06d264bdb84b3bdff51b262b03e08..3b7faec631b081ad91f080ad5a701f4d67db51ed 100644 |
--- a/webrtc/api/rtpsender.h |
+++ b/webrtc/api/rtpsender.h |
@@ -8,228 +8,11 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-// This file contains classes that implement RtpSenderInterface. |
-// An RtpSender associates a MediaStreamTrackInterface with an underlying |
-// transport (provided by AudioProviderInterface/VideoProviderInterface) |
- |
#ifndef WEBRTC_API_RTPSENDER_H_ |
#define WEBRTC_API_RTPSENDER_H_ |
-#include <memory> |
-#include <string> |
- |
-#include "webrtc/api/mediastreaminterface.h" |
-#include "webrtc/api/rtpsenderinterface.h" |
-#include "webrtc/api/statscollector.h" |
-#include "webrtc/base/basictypes.h" |
-#include "webrtc/base/criticalsection.h" |
-#include "webrtc/media/base/audiosource.h" |
-#include "webrtc/pc/channel.h" |
- |
-namespace webrtc { |
- |
-// Internal interface used by PeerConnection. |
-class RtpSenderInternal : public RtpSenderInterface { |
- public: |
- // Used to set the SSRC of the sender, once a local description has been set. |
- // If |ssrc| is 0, this indiates that the sender should disconnect from the |
- // underlying transport (this occurs if the sender isn't seen in a local |
- // description). |
- virtual void SetSsrc(uint32_t ssrc) = 0; |
- |
- // TODO(deadbeef): Support one sender having multiple stream ids. |
- virtual void set_stream_id(const std::string& stream_id) = 0; |
- virtual std::string stream_id() const = 0; |
- |
- virtual void Stop() = 0; |
-}; |
- |
-// LocalAudioSinkAdapter receives data callback as a sink to the local |
-// AudioTrack, and passes the data to the sink of AudioSource. |
-class LocalAudioSinkAdapter : public AudioTrackSinkInterface, |
- public cricket::AudioSource { |
- public: |
- LocalAudioSinkAdapter(); |
- virtual ~LocalAudioSinkAdapter(); |
- |
- private: |
- // AudioSinkInterface implementation. |
- void OnData(const void* audio_data, |
- int bits_per_sample, |
- int sample_rate, |
- size_t number_of_channels, |
- size_t number_of_frames) override; |
- |
- // cricket::AudioSource implementation. |
- void SetSink(cricket::AudioSource::Sink* sink) override; |
- |
- cricket::AudioSource::Sink* sink_; |
- // Critical section protecting |sink_|. |
- rtc::CriticalSection lock_; |
-}; |
- |
-class AudioRtpSender : public ObserverInterface, |
- public rtc::RefCountedObject<RtpSenderInternal> { |
- public: |
- // StatsCollector provided so that Add/RemoveLocalAudioTrack can be called |
- // at the appropriate times. |
- // |channel| can be null if one does not exist yet. |
- AudioRtpSender(AudioTrackInterface* track, |
- const std::string& stream_id, |
- cricket::VoiceChannel* channel, |
- StatsCollector* stats); |
- |
- // Randomly generates stream_id. |
- // |channel| can be null if one does not exist yet. |
- AudioRtpSender(AudioTrackInterface* track, |
- cricket::VoiceChannel* channel, |
- StatsCollector* stats); |
- |
- // Randomly generates id and stream_id. |
- // |channel| can be null if one does not exist yet. |
- AudioRtpSender(cricket::VoiceChannel* channel, StatsCollector* stats); |
- |
- virtual ~AudioRtpSender(); |
- |
- // ObserverInterface implementation |
- void OnChanged() override; |
- |
- // RtpSenderInterface implementation |
- bool SetTrack(MediaStreamTrackInterface* track) override; |
- rtc::scoped_refptr<MediaStreamTrackInterface> track() const override { |
- return track_; |
- } |
- |
- uint32_t ssrc() const override { return ssrc_; } |
- |
- cricket::MediaType media_type() const override { |
- return cricket::MEDIA_TYPE_AUDIO; |
- } |
- |
- std::string id() const override { return id_; } |
- |
- std::vector<std::string> stream_ids() const override { |
- std::vector<std::string> ret = {stream_id_}; |
- return ret; |
- } |
- |
- RtpParameters GetParameters() const override; |
- bool SetParameters(const RtpParameters& parameters) override; |
- |
- // RtpSenderInternal implementation. |
- void SetSsrc(uint32_t ssrc) override; |
- |
- 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; |
- |
- // Does not take ownership. |
- // Should call SetChannel(nullptr) before |channel| is destroyed. |
- void SetChannel(cricket::VoiceChannel* channel) { channel_ = channel; } |
- |
- private: |
- // TODO(nisse): Since SSRC == 0 is technically valid, figure out |
- // some other way to test if we have a valid SSRC. |
- bool can_send_track() const { return track_ && ssrc_; } |
- // Helper function to construct options for |
- // AudioProviderInterface::SetAudioSend. |
- void SetAudioSend(); |
- // Helper function to call SetAudioSend with "stop sending" parameters. |
- void ClearAudioSend(); |
- |
- std::string id_; |
- std::string stream_id_; |
- cricket::VoiceChannel* channel_ = nullptr; |
- 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::AudioSource. |
- std::unique_ptr<LocalAudioSinkAdapter> sink_adapter_; |
-}; |
- |
-class VideoRtpSender : public ObserverInterface, |
- public rtc::RefCountedObject<RtpSenderInternal> { |
- public: |
- // |channel| can be null if one does not exist yet. |
- VideoRtpSender(VideoTrackInterface* track, |
- const std::string& stream_id, |
- cricket::VideoChannel* channel); |
- |
- // Randomly generates stream_id. |
- // |channel| can be null if one does not exist yet. |
- VideoRtpSender(VideoTrackInterface* track, cricket::VideoChannel* channel); |
- |
- // Randomly generates id and stream_id. |
- // |channel| can be null if one does not exist yet. |
- explicit VideoRtpSender(cricket::VideoChannel* channel); |
- |
- virtual ~VideoRtpSender(); |
- |
- // ObserverInterface implementation |
- void OnChanged() override; |
- |
- // RtpSenderInterface implementation |
- bool SetTrack(MediaStreamTrackInterface* track) override; |
- rtc::scoped_refptr<MediaStreamTrackInterface> track() const override { |
- return track_; |
- } |
- |
- uint32_t ssrc() const override { return ssrc_; } |
- |
- cricket::MediaType media_type() const override { |
- return cricket::MEDIA_TYPE_VIDEO; |
- } |
- |
- std::string id() const override { return id_; } |
- |
- std::vector<std::string> stream_ids() const override { |
- std::vector<std::string> ret = {stream_id_}; |
- return ret; |
- } |
- |
- RtpParameters GetParameters() const override; |
- bool SetParameters(const RtpParameters& parameters) override; |
- |
- // RtpSenderInternal implementation. |
- void SetSsrc(uint32_t ssrc) override; |
- |
- 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; |
- |
- // Does not take ownership. |
- // Should call SetChannel(nullptr) before |channel| is destroyed. |
- void SetChannel(cricket::VideoChannel* channel) { channel_ = channel; } |
- |
- private: |
- bool can_send_track() const { return track_ && ssrc_; } |
- // Helper function to construct options for |
- // VideoProviderInterface::SetVideoSend. |
- void SetVideoSend(); |
- // Helper function to call SetVideoSend with "stop sending" parameters. |
- void ClearVideoSend(); |
- |
- std::string id_; |
- std::string stream_id_; |
- cricket::VideoChannel* channel_ = nullptr; |
- rtc::scoped_refptr<VideoTrackInterface> track_; |
- uint32_t ssrc_ = 0; |
- bool cached_track_enabled_ = false; |
- VideoTrackInterface::ContentHint cached_track_content_hint_ = |
- VideoTrackInterface::ContentHint::kNone; |
- bool stopped_ = false; |
-}; |
- |
-} // namespace webrtc |
+// Including this file is deprecated. It is no longer part of the public API. |
+// This only includes the file in its new location for backwards compatibility. |
+#include "webrtc/pc/rtpsender.h" |
#endif // WEBRTC_API_RTPSENDER_H_ |