summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/media_stream.h
diff options
context:
space:
mode:
authorperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 19:19:14 +0000
committerperkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 19:19:14 +0000
commitb36000b9e769006c65b8ea9297684de9b6f1d68a (patch)
treed59f443436affc8d97f079b0027923566cdeef96 /content/renderer/media/media_stream.h
parent6e88eccee59716e0ed8d3cc0dc5f60ded527daff (diff)
downloadchromium_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.h32
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);
};