summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorronghuawu@chromium.org <ronghuawu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-11 07:28:27 +0000
committerronghuawu@chromium.org <ronghuawu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-11 07:28:27 +0000
commite7798ff4ef9c92466e4f8f443a567a61929a7232 (patch)
tree6870c21eff7f7f68b73291eab614c77549d31949 /content/renderer
parent3c08f316cc3a934beec19aa84ec6f88c4a677902 (diff)
downloadchromium_src-e7798ff4ef9c92466e4f8f443a567a61929a7232.zip
chromium_src-e7798ff4ef9c92466e4f8f443a567a61929a7232.tar.gz
chromium_src-e7798ff4ef9c92466e4f8f443a567a61929a7232.tar.bz2
Use the track id instead of the source id to create native media track.
TEST=unit tests and apprtc Review URL: https://codereview.chromium.org/12200007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181667 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/media/media_stream_dependency_factory.cc52
-rw-r--r--content/renderer/media/media_stream_dependency_factory.h4
-rw-r--r--content/renderer/media/peer_connection_handler_base.cc16
-rw-r--r--content/renderer/media/rtc_peer_connection_handler_unittest.cc29
4 files changed, 54 insertions, 47 deletions
diff --git a/content/renderer/media/media_stream_dependency_factory.cc b/content/renderer/media/media_stream_dependency_factory.cc
index 58efd95..d4f9ee9 100644
--- a/content/renderer/media/media_stream_dependency_factory.cc
+++ b/content/renderer/media/media_stream_dependency_factory.cc
@@ -207,10 +207,10 @@ void MediaStreamDependencyFactory::CreateNativeMediaSources(
// Create local video sources.
RTCMediaConstraints native_video_constraints(video_constraints);
- WebKit::WebVector<WebKit::WebMediaStreamTrack> video_components;
- description->videoSources(video_components);
- for (size_t i = 0; i < video_components.size(); ++i) {
- const WebKit::WebMediaStreamSource& source = video_components[i].source();
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
+ description->videoSources(video_tracks);
+ for (size_t i = 0; i < video_tracks.size(); ++i) {
+ const WebKit::WebMediaStreamSource& source = video_tracks[i].source();
MediaStreamSourceExtraData* source_data =
static_cast<MediaStreamSourceExtraData*>(source.extraData());
if (!source_data) {
@@ -230,10 +230,10 @@ void MediaStreamDependencyFactory::CreateNativeMediaSources(
// Do additional source initialization if the audio source is a valid
// microphone or tab audio.
RTCMediaConstraints native_audio_constraints(audio_constraints);
- WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_components;
- description->audioSources(audio_components);
- for (size_t i = 0; i < audio_components.size(); ++i) {
- const WebKit::WebMediaStreamSource& source = audio_components[i].source();
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
+ description->audioSources(audio_tracks);
+ for (size_t i = 0; i < audio_tracks.size(); ++i) {
+ const WebKit::WebMediaStreamSource& source = audio_tracks[i].source();
MediaStreamSourceExtraData* source_data =
static_cast<MediaStreamSourceExtraData*>(source.extraData());
if (!source_data) {
@@ -273,11 +273,11 @@ void MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
CreateLocalMediaStream(label);
// Add audio tracks.
- WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_components;
- description->audioSources(audio_components);
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
+ description->audioSources(audio_tracks);
- for (size_t i = 0; i < audio_components.size(); ++i) {
- WebKit::WebMediaStreamSource source = audio_components[i].source();
+ for (size_t i = 0; i < audio_tracks.size(); ++i) {
+ WebKit::WebMediaStreamSource source = audio_tracks[i].source();
// See if we're adding a WebAudio MediaStream.
if (source.requiresAudioConsumer()) {
@@ -289,10 +289,10 @@ void MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
// constraints are passed via LocalAudioSource.
if (CreateWebAudioSource(&source)) {
scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
- CreateLocalAudioTrack(UTF16ToUTF8(audio_components[i].id()),
+ CreateLocalAudioTrack(UTF16ToUTF8(audio_tracks[i].id()),
NULL));
native_stream->AddTrack(audio_track);
- audio_track->set_enabled(audio_components[i].isEnabled());
+ audio_track->set_enabled(audio_tracks[i].isEnabled());
} else {
DLOG(WARNING) << "Failed to create WebAudio source";
}
@@ -308,18 +308,18 @@ void MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
}
scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
- CreateLocalAudioTrack(UTF16ToUTF8(source.id()),
+ CreateLocalAudioTrack(UTF16ToUTF8(audio_tracks[i].id()),
source_data->local_audio_source()));
native_stream->AddTrack(audio_track);
- audio_track->set_enabled(audio_components[i].isEnabled());
+ audio_track->set_enabled(audio_tracks[i].isEnabled());
}
}
// Add video tracks.
- WebKit::WebVector<WebKit::WebMediaStreamTrack> video_components;
- description->videoSources(video_components);
- for (size_t i = 0; i < video_components.size(); ++i) {
- const WebKit::WebMediaStreamSource& source = video_components[i].source();
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
+ description->videoSources(video_tracks);
+ for (size_t i = 0; i < video_tracks.size(); ++i) {
+ const WebKit::WebMediaStreamSource& source = video_tracks[i].source();
MediaStreamSourceExtraData* source_data =
static_cast<MediaStreamSourceExtraData*>(source.extraData());
if (!source_data || !source_data->video_source()) {
@@ -329,11 +329,11 @@ void MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
}
scoped_refptr<webrtc::VideoTrackInterface> video_track(
- CreateLocalVideoTrack(UTF16ToUTF8(source.id()),
+ CreateLocalVideoTrack(UTF16ToUTF8(video_tracks[i].id()),
source_data->video_source()));
native_stream->AddTrack(video_track);
- video_track->set_enabled(video_components[i].isEnabled());
+ video_track->set_enabled(video_tracks[i].isEnabled());
}
MediaStreamExtraData* extra_data = new MediaStreamExtraData(native_stream);
@@ -468,16 +468,16 @@ bool MediaStreamDependencyFactory::CreateWebAudioSource(
scoped_refptr<webrtc::VideoTrackInterface>
MediaStreamDependencyFactory::CreateLocalVideoTrack(
- const std::string& label,
+ const std::string& id,
webrtc::VideoSourceInterface* source) {
- return pc_factory_->CreateVideoTrack(label, source).get();
+ return pc_factory_->CreateVideoTrack(id, source).get();
}
scoped_refptr<webrtc::LocalAudioTrackInterface>
MediaStreamDependencyFactory::CreateLocalAudioTrack(
- const std::string& label,
+ const std::string& id,
webrtc::AudioSourceInterface* source) {
- return pc_factory_->CreateAudioTrack(label, source).get();
+ return pc_factory_->CreateAudioTrack(id, source).get();
}
webrtc::SessionDescriptionInterface*
diff --git a/content/renderer/media/media_stream_dependency_factory.h b/content/renderer/media/media_stream_dependency_factory.h
index 712e932..4cee7f3 100644
--- a/content/renderer/media/media_stream_dependency_factory.h
+++ b/content/renderer/media/media_stream_dependency_factory.h
@@ -142,12 +142,12 @@ class CONTENT_EXPORT MediaStreamDependencyFactory
// Asks the PeerConnection factory to create a Local AudioTrack object.
virtual scoped_refptr<webrtc::LocalAudioTrackInterface>
- CreateLocalAudioTrack(const std::string& label,
+ CreateLocalAudioTrack(const std::string& id,
webrtc::AudioSourceInterface* source);
// Asks the PeerConnection factory to create a Local VideoTrack object.
virtual scoped_refptr<webrtc::VideoTrackInterface>
- CreateLocalVideoTrack(const std::string& label,
+ CreateLocalVideoTrack(const std::string& id,
webrtc::VideoSourceInterface* source);
virtual bool EnsurePeerConnectionFactory();
diff --git a/content/renderer/media/peer_connection_handler_base.cc b/content/renderer/media/peer_connection_handler_base.cc
index 4ce0796..12b91cd 100644
--- a/content/renderer/media/peer_connection_handler_base.cc
+++ b/content/renderer/media/peer_connection_handler_base.cc
@@ -27,10 +27,10 @@ static webrtc::LocalMediaStreamInterface* GetLocalNativeMediaStream(
template <class TrackList>
static webrtc::MediaStreamTrackInterface* GetLocalTrack(
- const std::string& source_id,
+ const std::string& track_id,
TrackList* tracks) {
for (size_t i = 0; i < tracks->count(); ++i) {
- if (tracks->at(i)->id() == source_id)
+ if (tracks->at(i)->id() == track_id)
return tracks->at(i);
}
return NULL;
@@ -104,20 +104,20 @@ PeerConnectionHandlerBase::CreateWebKitStreamDescriptor(
webrtc::MediaStreamTrackInterface*
PeerConnectionHandlerBase::GetLocalNativeMediaStreamTrack(
const WebKit::WebMediaStream& stream,
- const WebKit::WebMediaStreamTrack& component) {
- std::string source_id = UTF16ToUTF8(component.source().id());
+ const WebKit::WebMediaStreamTrack& track) {
+ std::string track_id = UTF16ToUTF8(track.id());
webrtc::MediaStreamInterface* native_stream
= GetLocalNativeMediaStream(stream);
if (!native_stream) {
return NULL;
}
- if (component.source().type() == WebKit::WebMediaStreamSource::TypeAudio) {
+ if (track.source().type() == WebKit::WebMediaStreamSource::TypeAudio) {
return GetLocalTrack<webrtc::AudioTracks>(
- source_id, native_stream->audio_tracks());
+ track_id, native_stream->audio_tracks());
}
- if (component.source().type() == WebKit::WebMediaStreamSource::TypeVideo) {
+ if (track.source().type() == WebKit::WebMediaStreamSource::TypeVideo) {
return GetLocalTrack<webrtc::VideoTracks>(
- source_id, native_stream->video_tracks());
+ track_id, native_stream->video_tracks());
}
NOTIMPLEMENTED(); // We have an unknown type of media stream track.
return NULL;
diff --git a/content/renderer/media/rtc_peer_connection_handler_unittest.cc b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
index e1ff3c7..a227438 100644
--- a/content/renderer/media/rtc_peer_connection_handler_unittest.cc
+++ b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
@@ -213,17 +213,6 @@ class RTCPeerConnectionHandlerTest : public ::testing::Test {
std::string video_track_label("video-label");
std::string audio_track_label("audio-label");
- scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream(
- mock_dependency_factory_->CreateLocalMediaStream(stream_label));
- scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
- mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label,
- NULL));
- native_stream->AddTrack(audio_track);
- scoped_refptr<webrtc::LocalVideoTrackInterface> video_track(
- mock_dependency_factory_->CreateLocalVideoTrack(
- video_track_label, 0));
- native_stream->AddTrack(video_track);
-
WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources(
static_cast<size_t>(1));
audio_sources[0].initialize(WebKit::WebString::fromUTF8(audio_track_label),
@@ -237,6 +226,24 @@ class RTCPeerConnectionHandlerTest : public ::testing::Test {
WebKit::WebMediaStream local_stream;
local_stream.initialize(UTF8ToUTF16(stream_label), audio_sources,
video_sources);
+
+ scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream(
+ mock_dependency_factory_->CreateLocalMediaStream(stream_label));
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
+ local_stream.audioSources(audio_tracks);
+ const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id());
+ scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
+ mock_dependency_factory_->CreateLocalAudioTrack(audio_track_id,
+ NULL));
+ native_stream->AddTrack(audio_track);
+ WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
+ local_stream.audioSources(video_tracks);
+ const std::string video_track_id = UTF16ToUTF8(video_tracks[0].id());
+ scoped_refptr<webrtc::LocalVideoTrackInterface> video_track(
+ mock_dependency_factory_->CreateLocalVideoTrack(
+ video_track_id, 0));
+ native_stream->AddTrack(video_track);
+
local_stream.setExtraData(new MediaStreamExtraData(native_stream));
return local_stream;
}