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

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

Issue 133903004: Cleaned up the WebRtcAudioCapturer a bit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed the debugging DLOG. Created 6 years, 11 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 8d4fe56bdd811ccc2d6f4a1c6a07fbb25044fdb0..500dd0a22a110f9c4e4eb3fc34807a8648833d28 100644
--- a/content/renderer/media/media_stream_dependency_factory.cc
+++ b/content/renderer/media/media_stream_dependency_factory.cc
@@ -305,7 +305,7 @@ void MediaStreamDependencyFactory::CreateNativeMediaSources(
// source is used in multiple MediaStreams as a result of calling
// getUserMedia.
if (source_data->video_source())
- continue;
+ continue;
perkj_chrome 2014/01/12 21:53:06 indentation
no longer working on chromium 2014/01/13 16:59:59 Done.
const bool is_screencast =
source_data->device_info().device.type == MEDIA_TAB_VIDEO_CAPTURE ||
@@ -367,7 +367,7 @@ void MediaStreamDependencyFactory::CreateNativeMediaSources(
}
scoped_refptr<WebRtcAudioCapturer> capturer(
- MaybeCreateAudioCapturer(render_view_id, device_info));
+ CreateAudioCapturer(render_view_id, device_info));
if (!capturer.get()) {
DLOG(WARNING) << "Failed to create the capturer for device "
<< device_info.device.id;
@@ -455,6 +455,7 @@ MediaStreamDependencyFactory::CreateNativeAudioMediaStreamTrack(
source_data =
static_cast<MediaStreamSourceExtraData*>(source.extraData());
} else {
+ // TODO(xians): Check with perkj on if this comment is valid.
perkj_chrome 2014/01/12 21:53:06 Yes. CreateNativeAudioMediaStreamTrack is called w
no longer working on chromium 2014/01/13 16:59:59 Done with removing the TODO. Good to know, thanks.
// TODO(perkj): Implement support for sources from
// remote MediaStreams.
NOTIMPLEMENTED();
@@ -462,14 +463,9 @@ MediaStreamDependencyFactory::CreateNativeAudioMediaStreamTrack(
}
}
- std::string track_id = base::UTF16ToUTF8(track.id());
- scoped_refptr<WebRtcAudioCapturer> capturer;
- if (GetWebRtcAudioDevice())
- capturer = GetWebRtcAudioDevice()->GetDefaultCapturer();
-
scoped_refptr<webrtc::AudioTrackInterface> audio_track(
- CreateLocalAudioTrack(track_id,
- capturer,
+ CreateLocalAudioTrack(base::UTF16ToUTF8(track.id()),
+ source_data->GetAudioCapturer(),
webaudio_source.get(),
source_data->local_audio_source(),
&track_constraints));
@@ -930,7 +926,7 @@ void MediaStreamDependencyFactory::CleanupPeerConnectionFactory() {
}
scoped_refptr<WebRtcAudioCapturer>
-MediaStreamDependencyFactory::MaybeCreateAudioCapturer(
+MediaStreamDependencyFactory::CreateAudioCapturer(
int render_view_id,
const StreamDeviceInfo& device_info) {
// TODO(xians): Handle the cases when gUM is called without a proper render
@@ -938,32 +934,11 @@ MediaStreamDependencyFactory::MaybeCreateAudioCapturer(
DCHECK_GE(render_view_id, 0);
scoped_refptr<WebRtcAudioCapturer> capturer =
- GetWebRtcAudioDevice()->GetDefaultCapturer();
-
- // If the default capturer does not exist or |render_view_id| == -1, create
- // a new capturer.
- bool is_new_capturer = false;
- if (!capturer.get()) {
- capturer = WebRtcAudioCapturer::CreateCapturer();
- is_new_capturer = true;
- }
-
- if (!capturer->Initialize(
- render_view_id,
- static_cast<media::ChannelLayout>(
- device_info.device.input.channel_layout),
- device_info.device.input.sample_rate,
- device_info.device.input.frames_per_buffer,
- device_info.session_id,
- device_info.device.id,
- device_info.device.matched_output.sample_rate,
- device_info.device.matched_output.frames_per_buffer,
- device_info.device.input.effects)) {
- return NULL;
- }
+ WebRtcAudioCapturer::CreateCapturer(render_view_id, device_info);
- // Add the capturer to the WebRtcAudioDeviceImpl if it is a new capturer.
- if (is_new_capturer)
+ // Add the capturer to the WebRtcAudioDeviceImpl since it needs some hardware
+ // information from the capturer.
+ if (capturer)
perkj_chrome 2014/01/12 21:53:06 Can capturer be null?
no longer working on chromium 2014/01/13 16:59:59 Yes, CreateCapturer will return a NULL if it fails
GetWebRtcAudioDevice()->AddAudioCapturer(capturer);
perkj_chrome 2014/01/12 21:53:06 Rename method to SetAudioCapturer if there can be
no longer working on chromium 2014/01/13 16:59:59 A couple of days ago I landed a workaround to fix
return capturer;

Powered by Google App Engine
This is Rietveld 408576698