Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1227)

Unified Diff: talk/app/webrtc/rtpsenderinterface.h

Issue 1351803002: Exposing RtpSenders and RtpReceivers from PeerConnection. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Return bool from RtpSenderInterface::SetTrack. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698