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

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

Issue 1647773002: MediaStream audio sourcing: Bypass audio processing for non-WebRTC cases. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: NOT FOR REVIEW -- This will be broken-up across multiple CLs. Created 4 years, 10 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/mock_media_stream_registry.h" 5 #include "content/renderer/media/mock_media_stream_registry.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "content/renderer/media/media_stream.h" 10 #include "content/renderer/media/media_stream.h"
11 #include "content/renderer/media/media_stream_audio_source.h" 11 #include "content/renderer/media/media_stream_audio_source.h"
12 #include "content/renderer/media/media_stream_video_track.h" 12 #include "content/renderer/media/media_stream_video_track.h"
13 #include "content/renderer/media/mock_media_constraint_factory.h"
14 #include "content/renderer/media/mock_media_stream_video_source.h" 13 #include "content/renderer/media/mock_media_stream_video_source.h"
15 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h"
16 #include "content/renderer/media/webrtc_local_audio_track.h"
17 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
18 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
19 #include "third_party/WebKit/public/platform/WebString.h" 16 #include "third_party/WebKit/public/platform/WebString.h"
20 #include "third_party/WebKit/public/platform/WebVector.h" 17 #include "third_party/WebKit/public/platform/WebVector.h"
21 18
22 namespace content { 19 namespace content {
23 20
24 static const char kTestStreamLabel[] = "stream_label"; 21 namespace {
22
23 const char kTestStreamLabel[] = "stream_label";
24
25 class MockCDQualityAudioSource : public MediaStreamAudioSource {
26 public:
27 MockCDQualityAudioSource() : MediaStreamAudioSource(false /* is_remote */) {
28 MediaStreamAudioSource::SetFormat(media::AudioParameters(
29 media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
30 media::CHANNEL_LAYOUT_STEREO,
31 media::AudioParameters::kAudioCDSampleRate,
32 16,
33 media::AudioParameters::kAudioCDSampleRate / 100));
34 MediaStreamAudioSource::SetDeviceInfo(StreamDeviceInfo(
35 MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", "mock_audio_device_id",
36 media::AudioParameters::kAudioCDSampleRate, media::CHANNEL_LAYOUT_STEREO ,
37 media::AudioParameters::kAudioCDSampleRate / 100));
38 }
39
40 private:
41 DISALLOW_COPY_AND_ASSIGN(MockCDQualityAudioSource);
42 };
43
44 } // namespace
25 45
26 MockMediaStreamRegistry::MockMediaStreamRegistry() {} 46 MockMediaStreamRegistry::MockMediaStreamRegistry() {}
27 47
28 void MockMediaStreamRegistry::Init(const std::string& stream_url) { 48 void MockMediaStreamRegistry::Init(const std::string& stream_url) {
29 stream_url_ = stream_url; 49 stream_url_ = stream_url;
30 const blink::WebVector<blink::WebMediaStreamTrack> webkit_audio_tracks; 50 const blink::WebVector<blink::WebMediaStreamTrack> webkit_audio_tracks;
31 const blink::WebVector<blink::WebMediaStreamTrack> webkit_video_tracks; 51 const blink::WebVector<blink::WebMediaStreamTrack> webkit_video_tracks;
32 const blink::WebString label(kTestStreamLabel); 52 const blink::WebString label(kTestStreamLabel);
33 test_stream_.initialize(label, webkit_audio_tracks, webkit_video_tracks); 53 test_stream_.initialize(label, webkit_audio_tracks, webkit_video_tracks);
34 test_stream_.setExtraData(new MediaStream()); 54 test_stream_.setExtraData(new MediaStream());
(...skipping 14 matching lines...) Expand all
49 constraints.initialize(); 69 constraints.initialize();
50 70
51 MediaStreamVideoTrack* native_track = new MediaStreamVideoTrack( 71 MediaStreamVideoTrack* native_track = new MediaStreamVideoTrack(
52 native_source, constraints, MediaStreamVideoSource::ConstraintsCallback(), 72 native_source, constraints, MediaStreamVideoSource::ConstraintsCallback(),
53 true /* enabled */); 73 true /* enabled */);
54 blink_track.setExtraData(native_track); 74 blink_track.setExtraData(native_track);
55 test_stream_.addTrack(blink_track); 75 test_stream_.addTrack(blink_track);
56 } 76 }
57 77
58 void MockMediaStreamRegistry::AddAudioTrack(const std::string& track_id) { 78 void MockMediaStreamRegistry::AddAudioTrack(const std::string& track_id) {
59 blink::WebMediaStreamSource audio_source; 79 blink::WebMediaStreamSource blink_source;
60 audio_source.initialize( 80 blink_source.initialize(
61 "mock audio source id", blink::WebMediaStreamSource::TypeAudio, 81 "mock audio source id", blink::WebMediaStreamSource::TypeAudio,
62 "mock audio source name", false /* remote */, true /* readonly */); 82 "mock audio source name", false /* remote */, true /* readonly */);
63 audio_source.setExtraData(new MediaStreamAudioSource()); 83 blink_source.setExtraData(new MockCDQualityAudioSource());
84
64 blink::WebMediaStreamTrack blink_track; 85 blink::WebMediaStreamTrack blink_track;
65 blink_track.initialize(audio_source); 86 blink_track.initialize(blink_source);
66 const StreamDeviceInfo device_info( 87 CHECK(MediaStreamAudioSource::Get(blink_source)->ConnectToTrack(blink_track));
67 MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", "mock_audio_device_id"); 88
68 const MockMediaConstraintFactory constraint_factory;
69 const blink::WebMediaConstraints constraints =
70 constraint_factory.CreateWebMediaConstraints();
71 const scoped_refptr<WebRtcAudioCapturer> capturer(
72 WebRtcAudioCapturer::CreateCapturer(-1, /* render frame id */
73 device_info, constraints,
74 nullptr, /* audio device */
75 nullptr /* audio source */));
76 const scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
77 WebRtcLocalAudioTrackAdapter::Create(track_id,
78 nullptr /* track source */));
79 scoped_ptr<WebRtcLocalAudioTrack> native_track(new WebRtcLocalAudioTrack(
80 adapter.get(), capturer, nullptr /* webaudio source */));
81 blink_track.setExtraData(native_track.release());
82 test_stream_.addTrack(blink_track); 89 test_stream_.addTrack(blink_track);
83 } 90 }
84 91
85 blink::WebMediaStream MockMediaStreamRegistry::GetMediaStream( 92 blink::WebMediaStream MockMediaStreamRegistry::GetMediaStream(
86 const std::string& url) { 93 const std::string& url) {
87 return (url != stream_url_) ? blink::WebMediaStream() : test_stream_; 94 return (url != stream_url_) ? blink::WebMediaStream() : test_stream_;
88 } 95 }
89 96
90 } // namespace content 97 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_source.h ('k') | content/renderer/media/remote_media_stream_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698