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

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

Issue 10703095: New PeerConnection handler in Chrome to support latest PeerConnection draft (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Readd the UMA histogram for Deprecated PeerConnection to not screw up the stats. Created 8 years, 3 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/media_stream_dependency_factory.cc
diff --git a/content/renderer/media/media_stream_dependency_factory.cc b/content/renderer/media/media_stream_dependency_factory.cc
index 4f4565646f9aa8a155ceeee710bf8af92158da70..2e48d7d2506f1cdf50a14d076d82ef9c78a58e4c 100644
--- a/content/renderer/media/media_stream_dependency_factory.cc
+++ b/content/renderer/media/media_stream_dependency_factory.cc
@@ -10,8 +10,9 @@
#include "base/utf_string_conversions.h"
#include "content/renderer/media/media_stream_extra_data.h"
#include "content/renderer/media/media_stream_source_extra_data.h"
-#include "content/renderer/media/rtc_video_capturer.h"
#include "content/renderer/media/peer_connection_handler_jsep.h"
+#include "content/renderer/media/rtc_peer_connection_handler.h"
+#include "content/renderer/media/rtc_video_capturer.h"
#include "content/renderer/media/video_capture_impl_manager.h"
#include "content/renderer/media/webrtc_audio_device_impl.h"
#include "content/renderer/media/webrtc_uma_histograms.h"
@@ -96,13 +97,26 @@ MediaStreamDependencyFactory::CreatePeerConnectionHandlerJsep(
// webKitPeerConnection00.
UpdateWebRTCMethodCount(WEBKIT_PEER_CONNECTION);
- if (!EnsurePeerConnectionFactory()) {
+ if (!EnsurePeerConnectionFactory())
return NULL;
- }
return new PeerConnectionHandlerJsep(client, this);
}
+WebKit::WebRTCPeerConnectionHandler*
+MediaStreamDependencyFactory::CreateRTCPeerConnectionHandler(
+ WebKit::WebRTCPeerConnectionHandlerClient* client) {
+ // Save histogram data so we can see how much PeerConnetion is used.
+ // The histogram counts the number of calls to the JS API
+ // webKitRTCPeerConnection.
+ UpdateWebRTCMethodCount(WEBKIT_RTC_PEER_CONNECTION);
+
+ if (!EnsurePeerConnectionFactory())
+ return NULL;
+
+ return new RTCPeerConnectionHandler(client, this);
+}
+
bool MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
WebKit::WebMediaStreamDescriptor* description) {
// Creating the peer connection factory can fail if for example the audio
@@ -115,7 +129,7 @@ bool MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
return false;
std::string label = UTF16ToUTF8(description->label());
- talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream =
+ scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream =
CreateLocalMediaStream(label);
// Add audio tracks.
@@ -133,7 +147,7 @@ bool MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
// TODO(perkj): Refactor the creation of audio tracks to use a proper
// interface for receiving audio input data. Currently NULL is passed since
// the |audio_device| is the wrong class and is unused.
- talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
+ scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
CreateLocalAudioTrack(UTF16ToUTF8(source.id()), NULL));
native_stream->AddTrack(audio_track);
audio_track->set_enabled(audio_components[i].isEnabled());
@@ -155,7 +169,7 @@ bool MediaStreamDependencyFactory::CreateNativeLocalMediaStream(
NOTIMPLEMENTED();
continue;
}
- talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track(
+ scoped_refptr<webrtc::LocalVideoTrackInterface> video_track(
CreateLocalVideoTrack(UTF16ToUTF8(source.id()),
source_data->device_info().session_id));
native_stream->AddTrack(video_track);
@@ -173,7 +187,7 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory(
talk_base::NetworkManager* network_manager,
talk_base::PacketSocketFactory* socket_factory) {
if (!pc_factory_.get()) {
- talk_base::scoped_refptr<P2PPortAllocatorFactory> pa_factory =
+ scoped_refptr<P2PPortAllocatorFactory> pa_factory =
new talk_base::RefCountedObject<P2PPortAllocatorFactory>(
socket_dispatcher,
network_manager,
@@ -181,7 +195,7 @@ bool MediaStreamDependencyFactory::CreatePeerConnectionFactory(
DCHECK(!audio_device_);
audio_device_ = new WebRtcAudioDeviceImpl();
- talk_base::scoped_refptr<webrtc::PeerConnectionFactoryInterface> factory(
+ scoped_refptr<webrtc::PeerConnectionFactoryInterface> factory(
webrtc::CreatePeerConnectionFactory(worker_thread,
signaling_thread,
pa_factory.release(),
@@ -196,20 +210,29 @@ bool MediaStreamDependencyFactory::PeerConnectionFactoryCreated() {
return pc_factory_.get() != NULL;
}
-talk_base::scoped_refptr<webrtc::PeerConnectionInterface>
+scoped_refptr<webrtc::PeerConnectionInterface>
MediaStreamDependencyFactory::CreatePeerConnection(
const std::string& config,
webrtc::PeerConnectionObserver* observer) {
- return pc_factory_->CreatePeerConnection(config, observer);
+ return pc_factory_->CreatePeerConnection(config, observer).get();
}
-talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface>
+scoped_refptr<webrtc::PeerConnectionInterface>
+MediaStreamDependencyFactory::CreatePeerConnection(
+ const webrtc::JsepInterface::IceServers& ice_servers,
+ const webrtc::MediaConstraintsInterface* constraints,
+ webrtc::PeerConnectionObserver* observer) {
+ return pc_factory_->CreatePeerConnection(
+ ice_servers, constraints, observer).get();
+}
+
+scoped_refptr<webrtc::LocalMediaStreamInterface>
MediaStreamDependencyFactory::CreateLocalMediaStream(
const std::string& label) {
- return pc_factory_->CreateLocalMediaStream(label);
+ return pc_factory_->CreateLocalMediaStream(label).get();
}
-talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface>
+scoped_refptr<webrtc::LocalVideoTrackInterface>
MediaStreamDependencyFactory::CreateLocalVideoTrack(
const std::string& label,
int video_session_id) {
@@ -217,15 +240,14 @@ MediaStreamDependencyFactory::CreateLocalVideoTrack(
vc_manager_.get());
// The video track takes ownership of |capturer|.
- return pc_factory_->CreateLocalVideoTrack(label,
- capturer);
+ return pc_factory_->CreateLocalVideoTrack(label, capturer).get();
}
-talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface>
+scoped_refptr<webrtc::LocalAudioTrackInterface>
MediaStreamDependencyFactory::CreateLocalAudioTrack(
const std::string& label,
webrtc::AudioDeviceModule* audio_device) {
- return pc_factory_->CreateLocalAudioTrack(label, audio_device);
+ return pc_factory_->CreateLocalAudioTrack(label, audio_device).get();
}
webrtc::SessionDescriptionInterface*
@@ -233,6 +255,12 @@ MediaStreamDependencyFactory::CreateSessionDescription(const std::string& sdp) {
return webrtc::CreateSessionDescription(sdp);
}
+webrtc::SessionDescriptionInterface*
+MediaStreamDependencyFactory::CreateSessionDescription(const std::string& type,
+ const std::string& sdp) {
+ return webrtc::CreateSessionDescription(type, sdp);
+}
+
webrtc::IceCandidateInterface* MediaStreamDependencyFactory::CreateIceCandidate(
const std::string& sdp_mid,
int sdp_mline_index,

Powered by Google App Engine
This is Rietveld 408576698