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

Side by Side Diff: content/renderer/media/media_stream_dependency_factory.cc

Issue 218763007: Update MediaStreamTrack::Stop to latest draft. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/media_stream_dependency_factory.h" 5 #include "content/renderer/media/media_stream_dependency_factory.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 RTCMediaConstraints native_audio_constraints(audio_constraints); 198 RTCMediaConstraints native_audio_constraints(audio_constraints);
199 ApplyFixedAudioConstraints(&native_audio_constraints); 199 ApplyFixedAudioConstraints(&native_audio_constraints);
200 200
201 StreamDeviceInfo device_info = source_data->device_info(); 201 StreamDeviceInfo device_info = source_data->device_info();
202 RTCMediaConstraints constraints = native_audio_constraints; 202 RTCMediaConstraints constraints = native_audio_constraints;
203 // May modify both |constraints| and |effects|. 203 // May modify both |constraints| and |effects|.
204 HarmonizeConstraintsAndEffects(&constraints, 204 HarmonizeConstraintsAndEffects(&constraints,
205 &device_info.device.input.effects); 205 &device_info.device.input.effects);
206 206
207 scoped_refptr<WebRtcAudioCapturer> capturer( 207 scoped_refptr<WebRtcAudioCapturer> capturer(
208 CreateAudioCapturer(render_view_id, device_info, audio_constraints)); 208 CreateAudioCapturer(render_view_id, device_info, audio_constraints,
209 source_data));
209 if (!capturer.get()) { 210 if (!capturer.get()) {
210 DLOG(WARNING) << "Failed to create the capturer for device " 211 DLOG(WARNING) << "Failed to create the capturer for device "
211 << device_info.device.id; 212 << device_info.device.id;
212 // TODO(xians): Don't we need to check if source_observer is observing 213 // TODO(xians): Don't we need to check if source_observer is observing
213 // something? If not, then it looks like we have a leak here. 214 // something? If not, then it looks like we have a leak here.
214 // OTOH, if it _is_ observing something, then the callback might 215 // OTOH, if it _is_ observing something, then the callback might
215 // be called multiple times which is likely also a bug. 216 // be called multiple times which is likely also a bug.
216 return false; 217 return false;
217 } 218 }
218 source_data->SetAudioCapturer(capturer); 219 source_data->SetAudioCapturer(capturer);
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 } else { 660 } else {
660 NOTREACHED() << "Worker thread not running."; 661 NOTREACHED() << "Worker thread not running.";
661 } 662 }
662 } 663 }
663 } 664 }
664 665
665 scoped_refptr<WebRtcAudioCapturer> 666 scoped_refptr<WebRtcAudioCapturer>
666 MediaStreamDependencyFactory::CreateAudioCapturer( 667 MediaStreamDependencyFactory::CreateAudioCapturer(
667 int render_view_id, 668 int render_view_id,
668 const StreamDeviceInfo& device_info, 669 const StreamDeviceInfo& device_info,
669 const blink::WebMediaConstraints& constraints) { 670 const blink::WebMediaConstraints& constraints,
671 MediaStreamAudioSource* audio_source) {
670 // TODO(xians): Handle the cases when gUM is called without a proper render 672 // TODO(xians): Handle the cases when gUM is called without a proper render
671 // view, for example, by an extension. 673 // view, for example, by an extension.
672 DCHECK_GE(render_view_id, 0); 674 DCHECK_GE(render_view_id, 0);
673 675
674 EnsureWebRtcAudioDeviceImpl(); 676 EnsureWebRtcAudioDeviceImpl();
675 DCHECK(GetWebRtcAudioDevice()); 677 DCHECK(GetWebRtcAudioDevice());
676 return WebRtcAudioCapturer::CreateCapturer(render_view_id, device_info, 678 return WebRtcAudioCapturer::CreateCapturer(render_view_id, device_info,
677 constraints, 679 constraints,
678 GetWebRtcAudioDevice()); 680 GetWebRtcAudioDevice(),
681 audio_source);
679 } 682 }
680 683
681 void MediaStreamDependencyFactory::AddNativeAudioTrackToBlinkTrack( 684 void MediaStreamDependencyFactory::AddNativeAudioTrackToBlinkTrack(
682 webrtc::MediaStreamTrackInterface* native_track, 685 webrtc::MediaStreamTrackInterface* native_track,
683 const blink::WebMediaStreamTrack& webkit_track, 686 const blink::WebMediaStreamTrack& webkit_track,
684 bool is_local_track) { 687 bool is_local_track) {
685 DCHECK(!webkit_track.isNull() && !webkit_track.extraData()); 688 DCHECK(!webkit_track.isNull() && !webkit_track.extraData());
686 DCHECK_EQ(blink::WebMediaStreamSource::TypeAudio, 689 DCHECK_EQ(blink::WebMediaStreamSource::TypeAudio,
687 webkit_track.source().type()); 690 webkit_track.source().type());
688 blink::WebMediaStreamTrack track = webkit_track; 691 blink::WebMediaStreamTrack track = webkit_track;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 } 753 }
751 754
752 void MediaStreamDependencyFactory::EnsureWebRtcAudioDeviceImpl() { 755 void MediaStreamDependencyFactory::EnsureWebRtcAudioDeviceImpl() {
753 if (audio_device_) 756 if (audio_device_)
754 return; 757 return;
755 758
756 audio_device_ = new WebRtcAudioDeviceImpl(); 759 audio_device_ = new WebRtcAudioDeviceImpl();
757 } 760 }
758 761
759 } // namespace content 762 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698