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

Unified Diff: content/renderer/media/peer_connection_handler_base.cc

Issue 10383151: Refactor MediaStreamImpl and PeerConnection glue implementation after WebKit changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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: content/renderer/media/peer_connection_handler_base.cc
diff --git a/content/renderer/media/peer_connection_handler_base.cc b/content/renderer/media/peer_connection_handler_base.cc
index c87e02e516a94e7091eccfb44f98dd7db45a75dd..d13bd4b3526040c62ee805b031536471783e437c 100644
--- a/content/renderer/media/peer_connection_handler_base.cc
+++ b/content/renderer/media/peer_connection_handler_base.cc
@@ -5,6 +5,7 @@
#include "content/renderer/media/peer_connection_handler_base.h"
#include "base/logging.h"
+#include "base/stringprintf.h"
perkj_chrome 2012/05/13 13:39:18 Seems to be unused
perkj_chrome 2012/05/14 11:50:25 Done.
#include "base/utf_string_conversions.h"
#include "content/renderer/media/media_stream_dependency_factory.h"
#include "content/renderer/media/media_stream_impl.h"
@@ -12,46 +13,30 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
+static webrtc::LocalMediaStreamInterface* GetLocalNativeMediaStream(
+ const WebKit::WebMediaStreamDescriptor& stream) {
+ MediaStreamExtraData* extra_data =
+ static_cast<MediaStreamExtraData*>(stream.extraData());
+ if (extra_data)
+ return extra_data->local_stream();
+ return NULL;
+}
+
PeerConnectionHandlerBase::PeerConnectionHandlerBase(
- MediaStreamImpl* msi,
MediaStreamDependencyFactory* dependency_factory)
- : media_stream_impl_(msi),
- dependency_factory_(dependency_factory),
+ : dependency_factory_(dependency_factory),
message_loop_proxy_(base::MessageLoopProxy::current()) {
+ DVLOG(1) << "PeerConnectionHandlerBase::PeerConnectionHandlerBase";
}
PeerConnectionHandlerBase::~PeerConnectionHandlerBase() {
-}
-
-webrtc::MediaStreamInterface* PeerConnectionHandlerBase::GetRemoteMediaStream(
- const WebKit::WebMediaStreamDescriptor& stream) {
- for (RemoteStreamMap::const_iterator it = remote_streams_.begin();
- it != remote_streams_.end(); ++it) {
- if (it->second.label() == stream.label())
- return it->first;
- }
- return NULL;
-}
-
-void PeerConnectionHandlerBase::SetRemoteVideoRenderer(
- const std::string& source_id,
- webrtc::VideoRendererWrapperInterface* renderer) {
- webrtc::VideoTrackInterface* remote_track = FindRemoteVideoTrack(source_id);
- if (remote_track) {
- remote_track->SetRenderer(renderer);
- // TODO(perkj): Remove video_renderers_ from this class when it's not longer
- // needed. See http://code.google.com/p/webrtc/issues/detail?id=447
- video_renderers_.erase(source_id); // Remove old renderer if exists.
- video_renderers_.insert(std::make_pair(source_id, renderer));
- } else {
- NOTREACHED();
- }
+ DVLOG(1) << "PeerConnectionHandlerBase::~PeerConnectionHandlerBase";
}
void PeerConnectionHandlerBase::AddStream(
const WebKit::WebMediaStreamDescriptor& stream) {
webrtc::LocalMediaStreamInterface* native_stream =
- media_stream_impl_->GetLocalMediaStream(stream);
+ GetLocalNativeMediaStream(stream);
if (native_stream)
native_peer_connection_->AddStream(native_stream);
DCHECK(native_stream);
@@ -60,7 +45,7 @@ void PeerConnectionHandlerBase::AddStream(
void PeerConnectionHandlerBase::RemoveStream(
const WebKit::WebMediaStreamDescriptor& stream) {
webrtc::LocalMediaStreamInterface* native_stream =
- media_stream_impl_->GetLocalMediaStream(stream);
+ GetLocalNativeMediaStream(stream);
if (native_stream)
native_peer_connection_->RemoveStream(native_stream);
DCHECK(native_stream);
@@ -71,16 +56,17 @@ PeerConnectionHandlerBase::CreateWebKitStreamDescriptor(
webrtc::MediaStreamInterface* stream) {
webrtc::AudioTracks* audio_tracks = stream->audio_tracks();
webrtc::VideoTracks* video_tracks = stream->video_tracks();
- WebKit::WebVector<WebKit::WebMediaStreamSource> source_vector(
- audio_tracks->count() + video_tracks->count());
+ WebKit::WebVector<WebKit::WebMediaStreamSource> audio_source_vector(
+ audio_tracks->count());
+ WebKit::WebVector<WebKit::WebMediaStreamSource> video_source_vector(
+ video_tracks->count());
// Add audio tracks.
size_t i = 0;
for (; i < audio_tracks->count(); ++i) {
webrtc::AudioTrackInterface* audio_track = audio_tracks->at(i);
DCHECK(audio_track);
- source_vector[i].initialize(
- // TODO(grunell): Set id to something unique.
+ audio_source_vector[i].initialize(
UTF8ToUTF16(audio_track->label()),
WebKit::WebMediaStreamSource::TypeAudio,
UTF8ToUTF16(audio_track->label()));
@@ -90,33 +76,14 @@ PeerConnectionHandlerBase::CreateWebKitStreamDescriptor(
for (i = 0; i < video_tracks->count(); ++i) {
webrtc::VideoTrackInterface* video_track = video_tracks->at(i);
DCHECK(video_track);
- source_vector[audio_tracks->count() + i].initialize(
- // TODO(grunell): Set id to something unique.
+ video_source_vector[i].initialize(
UTF8ToUTF16(video_track->label()),
WebKit::WebMediaStreamSource::TypeVideo,
UTF8ToUTF16(video_track->label()));
}
-
WebKit::WebMediaStreamDescriptor descriptor;
- descriptor.initialize(UTF8ToUTF16(stream->label()), source_vector);
-
+ descriptor.initialize(UTF8ToUTF16(stream->label()),
+ audio_source_vector, video_source_vector);
+ descriptor.setExtraData(new MediaStreamExtraData(stream));
return descriptor;
}
-
-webrtc::VideoTrackInterface* PeerConnectionHandlerBase::FindRemoteVideoTrack(
- const std::string& source_id) {
- talk_base::scoped_refptr<webrtc::StreamCollectionInterface> streams =
- native_peer_connection_->remote_streams();
- for (size_t i = 0; i < streams->count(); ++i) {
- webrtc::VideoTracks* track_list =streams->at(i)->video_tracks();
- for (size_t j =0; j < track_list->count(); ++j) {
- if (track_list->at(j)->label() == source_id) {
- return track_list->at(j);
- }
- }
- }
- return NULL;
-}
-
-
-

Powered by Google App Engine
This is Rietveld 408576698