diff options
author | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 19:19:14 +0000 |
---|---|---|
committer | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 19:19:14 +0000 |
commit | b36000b9e769006c65b8ea9297684de9b6f1d68a (patch) | |
tree | d59f443436affc8d97f079b0027923566cdeef96 /content/renderer/media/media_stream.h | |
parent | 6e88eccee59716e0ed8d3cc0dc5f60ded527daff (diff) | |
download | chromium_src-b36000b9e769006c65b8ea9297684de9b6f1d68a.zip chromium_src-b36000b9e769006c65b8ea9297684de9b6f1d68a.tar.gz chromium_src-b36000b9e769006c65b8ea9297684de9b6f1d68a.tar.bz2 |
Revert "Revert of Only create webrtc MediaStreams when added to a PeerConnection
https://codereview.chromium.org/227163007/
This reverts commit caa70d180ff72cbf5f5ffd542b97de86794d5e00.
The reason for the original revert is fixed in https://codereview.chromium.org/237433003/.
Original CL desription:
This cl adds a new class WebRtcMediaStreamAdapter. The responsibility of the class is to create and own a representation of a webrtc MediaStream that can be added and removed from a PeerConnection.
An instance of WebRtcMediaStreamAdapter is created when a MediaStream is added to RTCPeerConnection object.
The purpose is to clean up the the webrtc specific use of MediaStreams.
TBR= ronghuawu@chromium.org
BUG=323223
Review URL: https://codereview.chromium.org/235503011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264277 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/media_stream.h')
-rw-r--r-- | content/renderer/media/media_stream.h | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/content/renderer/media/media_stream.h b/content/renderer/media/media_stream.h index ac7faf4..00f3651 100644 --- a/content/renderer/media/media_stream.h +++ b/content/renderer/media/media_stream.h @@ -9,28 +9,27 @@ #include "base/callback.h" #include "base/compiler_specific.h" -#include "base/memory/ref_counted.h" #include "content/common/content_export.h" #include "third_party/WebKit/public/platform/WebMediaStream.h" namespace webrtc { class MediaStreamInterface; -} // namespace webrtc +} namespace content { -class MediaStreamDependencyFactory; - // MediaStream is the Chrome representation of blink::WebMediaStream. // It is owned by blink::WebMediaStream as blink::WebMediaStream::ExtraData. class CONTENT_EXPORT MediaStream : NON_EXPORTED_BASE(public blink::WebMediaStream::ExtraData) { public: // Constructor for local MediaStreams. - MediaStream(MediaStreamDependencyFactory* factory, - const blink::WebMediaStream& stream); + MediaStream(const blink::WebMediaStream& stream); + // Constructor for remote MediaStreams. - explicit MediaStream(webrtc::MediaStreamInterface* stream); + // TODO(xians): Remove once the audio renderer don't separate between local + // and remotely generated streams. + explicit MediaStream(webrtc::MediaStreamInterface* webrtc_stream); virtual ~MediaStream(); @@ -38,9 +37,9 @@ class CONTENT_EXPORT MediaStream static MediaStream* GetMediaStream( const blink::WebMediaStream& stream); - // Returns a libjingle representation of a MediaStream. If a representation - // does not exist- the libjingle stream is created. This method will never - // return NULL. + // Returns a libjingle representation of a remote MediaStream. + // TODO(xians): Remove once the audio renderer don't separate between local + // and remotely generated streams. static webrtc::MediaStreamInterface* GetAdapter( const blink::WebMediaStream& stream); @@ -51,27 +50,24 @@ class CONTENT_EXPORT MediaStream // Called by MediaStreamCenter when a track has been added to a stream stream. // If a libjingle representation of |stream| exist, the track is added to // the libjingle MediaStream. - bool AddTrack(const blink::WebMediaStream& stream, - const blink::WebMediaStreamTrack& track); + bool AddTrack(const blink::WebMediaStreamTrack& track); // Called by MediaStreamCenter when a track has been removed from |stream| // If a libjingle representation or |stream| exist, the track is removed // from the libjingle MediaStream. - bool RemoveTrack(const blink::WebMediaStream& stream, - const blink::WebMediaStreamTrack& track); + bool RemoveTrack(const blink::WebMediaStreamTrack& track); protected: virtual webrtc::MediaStreamInterface* GetWebRtcAdapter( const blink::WebMediaStream& stream); private: - scoped_refptr<webrtc::MediaStreamInterface> stream_adapter_; const bool is_local_; const std::string label_; - // Weak ref to a MediaStreamDependencyFactory, owned by the RenderThread. - // It's valid for the lifetime of RenderThread. - MediaStreamDependencyFactory* factory_; + // TODO(xians): Remove once the audio renderer don't separate between local + // and remotely generated streams. + scoped_refptr<webrtc::MediaStreamInterface> webrtc_media_stream_; DISALLOW_COPY_AND_ASSIGN(MediaStream); }; |