Index: talk/app/webrtc/rtpsenderinterface.h |
diff --git a/talk/app/webrtc/audiotrack.h b/talk/app/webrtc/rtpsenderinterface.h |
similarity index 57% |
copy from talk/app/webrtc/audiotrack.h |
copy to talk/app/webrtc/rtpsenderinterface.h |
index 750f272ba2b79c8dcd4ccc14de83b55ca43d4ec4..5d25d651a6990380e647dd70fbf6d51db2d018cd 100644 |
--- a/talk/app/webrtc/audiotrack.h |
+++ b/talk/app/webrtc/rtpsenderinterface.h |
@@ -1,6 +1,6 @@ |
/* |
* libjingle |
- * Copyright 2011 Google Inc. |
+ * Copyright 2015 Google Inc. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions are met: |
@@ -25,45 +25,43 @@ |
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef TALK_APP_WEBRTC_AUDIOTRACK_H_ |
-#define TALK_APP_WEBRTC_AUDIOTRACK_H_ |
+// This file contains interfaces for RtpSenders |
+// http://w3c.github.io/webrtc-pc/#rtcrtpsender-interface |
+#ifndef TALK_APP_WEBRTC_RTPSENDERINTERFACE_H_ |
+#define TALK_APP_WEBRTC_RTPSENDERINTERFACE_H_ |
+ |
+#include <string> |
+ |
+#include "talk/app/webrtc/proxy.h" |
#include "talk/app/webrtc/mediastreaminterface.h" |
-#include "talk/app/webrtc/mediastreamtrack.h" |
-#include "talk/app/webrtc/notifier.h" |
-#include "webrtc/base/scoped_ptr.h" |
+#include "webrtc/base/refcount.h" |
#include "webrtc/base/scoped_ref_ptr.h" |
namespace webrtc { |
-class AudioTrack : public MediaStreamTrack<AudioTrackInterface> { |
+class RtpSenderInterface : public rtc::RefCountInterface { |
public: |
- static rtc::scoped_refptr<AudioTrack> Create( |
- const std::string& id, AudioSourceInterface* source); |
- |
- // AudioTrackInterface implementation. |
- AudioSourceInterface* GetSource() const override { |
- return audio_source_.get(); |
- } |
- // TODO(xians): Implement these methods. |
- void AddSink(AudioTrackSinkInterface* sink) override {} |
- void RemoveSink(AudioTrackSinkInterface* sink) override {} |
- bool GetSignalLevel(int* level) override { return false; } |
- rtc::scoped_refptr<AudioProcessorInterface> GetAudioProcessor() override { |
- return NULL; |
- } |
- cricket::AudioRenderer* GetRenderer() override { return NULL; } |
+ // Returns true if successful in setting the track. |
+ // Fails if an audio track is set on a video RtpSender, or vice-versa. |
+ virtual bool SetTrack(MediaStreamTrackInterface* track) = 0; |
+ virtual rtc::scoped_refptr<MediaStreamTrackInterface> track() const = 0; |
- // MediaStreamTrack implementation. |
- std::string kind() const override; |
+ // Not to be confused with "mid", this is a field we can temporarily use |
+ // to uniquely identify a receiver until we implement Unified Plan SDP. |
+ virtual std::string id() const = 0; |
protected: |
- AudioTrack(const std::string& label, AudioSourceInterface* audio_source); |
- |
- private: |
- rtc::scoped_refptr<AudioSourceInterface> audio_source_; |
+ virtual ~RtpSenderInterface() {} |
}; |
+// Define proxy for RtpSenderInterface. |
+BEGIN_PROXY_MAP(RtpSender) |
+PROXY_METHOD1(bool, SetTrack, MediaStreamTrackInterface*) |
+PROXY_CONSTMETHOD0(rtc::scoped_refptr<MediaStreamTrackInterface>, track) |
+PROXY_CONSTMETHOD0(std::string, id) |
+END_PROXY() |
+ |
} // namespace webrtc |
-#endif // TALK_APP_WEBRTC_AUDIOTRACK_H_ |
+#endif // TALK_APP_WEBRTC_RTPSENDERINTERFACE_H_ |