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

Unified Diff: trunk/src/content/renderer/media/remote_media_stream_impl.cc

Issue 231963002: Revert 262050 "Implement a source for remote video tracks." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 8 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: trunk/src/content/renderer/media/remote_media_stream_impl.cc
===================================================================
--- trunk/src/content/renderer/media/remote_media_stream_impl.cc (revision 262817)
+++ trunk/src/content/renderer/media/remote_media_stream_impl.cc (working copy)
@@ -10,131 +10,86 @@
#include "base/strings/utf_string_conversions.h"
#include "content/renderer/media/media_stream.h"
#include "content/renderer/media/media_stream_dependency_factory.h"
-#include "content/renderer/media/media_stream_video_track.h"
-#include "content/renderer/media/webrtc/media_stream_remote_video_source.h"
-#include "content/renderer/render_thread_impl.h"
#include "third_party/WebKit/public/platform/WebString.h"
namespace content {
-namespace {
-
-void InitializeWebkitTrack(webrtc::MediaStreamTrackInterface* track,
- blink::WebMediaStreamTrack* webkit_track,
- blink::WebMediaStreamSource::Type type) {
- blink::WebMediaStreamSource webkit_source;
- blink::WebString webkit_track_id(base::UTF8ToUTF16(track->id()));
-
- webkit_source.initialize(webkit_track_id, type, webkit_track_id);
- webkit_track->initialize(webkit_track_id, webkit_source);
-
- MediaStreamDependencyFactory* factory = NULL;
- // RenderThreadImpl::current() may be NULL in unit tests.
- RenderThreadImpl* render_thread = RenderThreadImpl::current();
- if (render_thread)
- factory = render_thread->GetMediaStreamDependencyFactory();
-
- if (type == blink::WebMediaStreamSource::TypeVideo) {
- MediaStreamRemoteVideoSource* video_source =
- new MediaStreamRemoteVideoSource(
- static_cast<webrtc::VideoTrackInterface*>(track));
- webkit_source.setExtraData(video_source);
- // Initial constraints must be provided to a MediaStreamVideoTrack. But
- // no constraints are available initially on a remote video track.
- blink::WebMediaConstraints constraints;
- constraints.initialize();
- webkit_track->setExtraData(
- new MediaStreamVideoTrack(video_source, constraints,
- MediaStreamVideoSource::ConstraintsCallback(),
- track->enabled(), factory));
- } else {
- DCHECK(type == blink::WebMediaStreamSource::TypeAudio);
- content::MediaStreamDependencyFactory::AddNativeAudioTrackToBlinkTrack(
- track, *webkit_track, false);
- }
-}
-
-} // namespace
-
-// Base class used for mapping between webrtc and blink MediaStream tracks.
-// An instance of a RemoteMediaStreamTrackAdapter is stored in
-// RemoteMediaStreamImpl per remote audio and video track.
-class RemoteMediaStreamTrackAdapter {
+// RemoteMediaStreamTrackObserver is responsible for listening on change
+// notification on a remote webrtc MediaStreamTrack and notify WebKit.
+class RemoteMediaStreamTrackObserver
+ : NON_EXPORTED_BASE(public webrtc::ObserverInterface),
+ NON_EXPORTED_BASE(public base::NonThreadSafe) {
public:
- RemoteMediaStreamTrackAdapter(webrtc::MediaStreamTrackInterface* webrtc_track,
- const blink::WebMediaStreamTrack& webkit_track)
- : webrtc_track_(webrtc_track),
- webkit_track_(webkit_track) {
- }
+ RemoteMediaStreamTrackObserver(
+ webrtc::MediaStreamTrackInterface* webrtc_track,
+ const blink::WebMediaStreamTrack& webkit_track);
+ virtual ~RemoteMediaStreamTrackObserver();
- virtual ~RemoteMediaStreamTrackAdapter() {
- }
-
- webrtc::MediaStreamTrackInterface* observed_track() {
+ webrtc::MediaStreamTrackInterface* observered_track() {
return webrtc_track_.get();
}
-
const blink::WebMediaStreamTrack& webkit_track() { return webkit_track_; }
private:
+ // webrtc::ObserverInterface implementation.
+ virtual void OnChanged() OVERRIDE;
+
+ webrtc::MediaStreamTrackInterface::TrackState state_;
scoped_refptr<webrtc::MediaStreamTrackInterface> webrtc_track_;
blink::WebMediaStreamTrack webkit_track_;
- bool sent_ended_message_;
- DISALLOW_COPY_AND_ASSIGN(RemoteMediaStreamTrackAdapter);
+ DISALLOW_COPY_AND_ASSIGN(RemoteMediaStreamTrackObserver);
};
-static content::RemoteMediaStreamTrackAdapter* FindTrackObserver(
- webrtc::MediaStreamTrackInterface* track,
- const ScopedVector<content::RemoteMediaStreamTrackAdapter>& observers) {
- ScopedVector<content::RemoteMediaStreamTrackAdapter>::const_iterator it =
+} // namespace content
+
+namespace {
+
+void InitializeWebkitTrack(webrtc::MediaStreamTrackInterface* track,
+ blink::WebMediaStreamTrack* webkit_track,
+ blink::WebMediaStreamSource::Type type) {
+ blink::WebMediaStreamSource webkit_source;
+ blink::WebString webkit_track_id(base::UTF8ToUTF16(track->id()));
+
+ webkit_source.initialize(webkit_track_id, type, webkit_track_id);
+ webkit_track->initialize(webkit_track_id, webkit_source);
+ content::MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack(
+ track, *webkit_track, false);
+}
+
+content::RemoteMediaStreamTrackObserver* FindTrackObserver(
+ webrtc::MediaStreamTrackInterface* track,
+ const ScopedVector<content::RemoteMediaStreamTrackObserver>& observers) {
+ ScopedVector<content::RemoteMediaStreamTrackObserver>::const_iterator it =
observers.begin();
for (; it != observers.end(); ++it) {
- if ((*it)->observed_track() == track)
+ if ((*it)->observered_track() == track)
return *it;
}
return NULL;
}
-// RemoteAudioMediaStreamTrackAdapter is responsible for listening on state
-// change notifications on a remote webrtc audio MediaStreamTracks and notify
-// WebKit.
-class RemoteAudioMediaStreamTrackAdapter
- : public RemoteMediaStreamTrackAdapter,
- public webrtc::ObserverInterface,
- public base::NonThreadSafe {
- public:
- RemoteAudioMediaStreamTrackAdapter(
- webrtc::MediaStreamTrackInterface* webrtc_track,
- const blink::WebMediaStreamTrack& webkit_track);
- virtual ~RemoteAudioMediaStreamTrackAdapter();
+} // namespace anonymous
- private:
- // webrtc::ObserverInterface implementation.
- virtual void OnChanged() OVERRIDE;
+namespace content {
- webrtc::MediaStreamTrackInterface::TrackState state_;
-
- DISALLOW_COPY_AND_ASSIGN(RemoteAudioMediaStreamTrackAdapter);
-};
-
-RemoteAudioMediaStreamTrackAdapter::RemoteAudioMediaStreamTrackAdapter(
+RemoteMediaStreamTrackObserver::RemoteMediaStreamTrackObserver(
webrtc::MediaStreamTrackInterface* webrtc_track,
const blink::WebMediaStreamTrack& webkit_track)
- : RemoteMediaStreamTrackAdapter(webrtc_track, webkit_track),
- state_(observed_track()->state()) {
- observed_track()->RegisterObserver(this);
+ : state_(webrtc_track->state()),
+ webrtc_track_(webrtc_track),
+ webkit_track_(webkit_track) {
+ webrtc_track->RegisterObserver(this);
}
-RemoteAudioMediaStreamTrackAdapter::~RemoteAudioMediaStreamTrackAdapter() {
- observed_track()->UnregisterObserver(this);
+RemoteMediaStreamTrackObserver::~RemoteMediaStreamTrackObserver() {
+ webrtc_track_->UnregisterObserver(this);
}
-void RemoteAudioMediaStreamTrackAdapter::OnChanged() {
+void RemoteMediaStreamTrackObserver::OnChanged() {
DCHECK(CalledOnValidThread());
- webrtc::MediaStreamTrackInterface::TrackState state =
- observed_track()->state();
+ webrtc::MediaStreamTrackInterface::TrackState state = webrtc_track_->state();
if (state == state_)
return;
@@ -145,11 +100,11 @@
// WebMediaStreamSource::ReadyState.
break;
case webrtc::MediaStreamTrackInterface::kLive:
- webkit_track().source().setReadyState(
+ webkit_track_.source().setReadyState(
blink::WebMediaStreamSource::ReadyStateLive);
break;
case webrtc::MediaStreamTrackInterface::kEnded:
- webkit_track().source().setReadyState(
+ webkit_track_.source().setReadyState(
blink::WebMediaStreamSource::ReadyStateEnded);
break;
default:
@@ -176,8 +131,8 @@
InitializeWebkitTrack(audio_track, &webkit_audio_tracks[i],
blink::WebMediaStreamSource::TypeAudio);
audio_track_observers_.push_back(
- new RemoteAudioMediaStreamTrackAdapter(audio_track,
- webkit_audio_tracks[i]));
+ new RemoteMediaStreamTrackObserver(audio_track,
+ webkit_audio_tracks[i]));
}
// Initialize WebKit video tracks.
@@ -191,8 +146,8 @@
InitializeWebkitTrack(video_track, &webkit_video_tracks[i],
blink::WebMediaStreamSource::TypeVideo);
video_track_observers_.push_back(
- new RemoteMediaStreamTrackAdapter(video_track,
- webkit_video_tracks[i]));
+ new RemoteMediaStreamTrackObserver(video_track,
+ webkit_video_tracks[i]));
}
webkit_stream_.initialize(base::UTF8ToUTF16(webrtc_stream->label()),
@@ -206,10 +161,10 @@
void RemoteMediaStreamImpl::OnChanged() {
// Find removed audio tracks.
- ScopedVector<RemoteMediaStreamTrackAdapter>::iterator audio_it =
+ ScopedVector<RemoteMediaStreamTrackObserver>::iterator audio_it =
audio_track_observers_.begin();
while (audio_it != audio_track_observers_.end()) {
- std::string track_id = (*audio_it)->observed_track()->id();
+ std::string track_id = (*audio_it)->observered_track()->id();
if (webrtc_stream_->FindAudioTrack(track_id) == NULL) {
webkit_stream_.removeTrack((*audio_it)->webkit_track());
audio_it = audio_track_observers_.erase(audio_it);
@@ -219,10 +174,10 @@
}
// Find removed video tracks.
- ScopedVector<RemoteMediaStreamTrackAdapter>::iterator video_it =
+ ScopedVector<RemoteMediaStreamTrackObserver>::iterator video_it =
video_track_observers_.begin();
while (video_it != video_track_observers_.end()) {
- std::string track_id = (*video_it)->observed_track()->id();
+ std::string track_id = (*video_it)->observered_track()->id();
if (webrtc_stream_->FindVideoTrack(track_id) == NULL) {
webkit_stream_.removeTrack((*video_it)->webkit_track());
video_it = video_track_observers_.erase(video_it);
@@ -241,7 +196,7 @@
InitializeWebkitTrack(*it, &new_track,
blink::WebMediaStreamSource::TypeAudio);
audio_track_observers_.push_back(
- new RemoteAudioMediaStreamTrackAdapter(*it, new_track));
+ new RemoteMediaStreamTrackObserver(*it, new_track));
webkit_stream_.addTrack(new_track);
}
}
@@ -256,7 +211,7 @@
InitializeWebkitTrack(*it, &new_track,
blink::WebMediaStreamSource::TypeVideo);
video_track_observers_.push_back(
- new RemoteMediaStreamTrackAdapter(*it, new_track));
+ new RemoteMediaStreamTrackObserver(*it, new_track));
webkit_stream_.addTrack(new_track);
}
}

Powered by Google App Engine
This is Rietveld 408576698