OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/webrtc/webrtc_media_stream_adapter.h" | 5 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 void TearDown() override { | 40 void TearDown() override { |
41 adapter_.reset(); | 41 adapter_.reset(); |
42 blink::WebHeap::collectAllGarbageForTesting(); | 42 blink::WebHeap::collectAllGarbageForTesting(); |
43 } | 43 } |
44 | 44 |
45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { | 45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { |
46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( | 46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( |
47 audio ? static_cast<size_t>(1) : 0); | 47 audio ? static_cast<size_t>(1) : 0); |
48 if (audio) { | 48 if (audio) { |
49 blink::WebMediaStreamSource audio_source; | 49 blink::WebMediaStreamSource audio_source; |
50 audio_source.initialize("audio", | 50 audio_source.initialize("audio", blink::WebMediaStreamSource::TypeAudio, |
51 blink::WebMediaStreamSource::TypeAudio, | 51 "audio"); |
52 "audio", | |
53 false /* remote */); | |
54 ProcessedLocalAudioSource* const source = new ProcessedLocalAudioSource( | 52 ProcessedLocalAudioSource* const source = new ProcessedLocalAudioSource( |
55 -1 /* consumer_render_frame_id is N/A for non-browser tests */, | 53 -1 /* consumer_render_frame_id is N/A for non-browser tests */, |
56 StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", | 54 StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", |
57 "mock_audio_device_id", "mock_group_id", | 55 "mock_audio_device_id", "mock_group_id", |
58 media::AudioParameters::kAudioCDSampleRate, | 56 media::AudioParameters::kAudioCDSampleRate, |
59 media::CHANNEL_LAYOUT_STEREO, | 57 media::CHANNEL_LAYOUT_STEREO, |
60 media::AudioParameters::kAudioCDSampleRate / 50), | 58 media::AudioParameters::kAudioCDSampleRate / 50), |
61 dependency_factory_.get()); | 59 dependency_factory_.get()); |
62 source->SetAllowInvalidRenderFrameIdForTesting(true); | 60 source->SetAllowInvalidRenderFrameIdForTesting(true); |
63 source->SetSourceConstraints( | 61 source->SetSourceConstraints( |
64 MockConstraintFactory().CreateWebMediaConstraints()); | 62 MockConstraintFactory().CreateWebMediaConstraints()); |
65 audio_source.setExtraData(source); // Takes ownership. | 63 audio_source.setExtraData(source); // Takes ownership. |
66 audio_track_vector[0].initialize(audio_source); | 64 audio_track_vector[0].initialize(audio_source); |
67 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), | 65 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), |
68 Initialize(_, _, -1)); | 66 Initialize(_, _, -1)); |
69 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), | 67 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), |
70 SetAutomaticGainControl(true)); | 68 SetAutomaticGainControl(true)); |
71 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start()); | 69 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start()); |
72 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop()); | 70 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop()); |
73 CHECK(source->ConnectToTrack(audio_track_vector[0])); | 71 CHECK(source->ConnectToTrack(audio_track_vector[0])); |
74 } | 72 } |
75 | 73 |
76 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector( | 74 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector( |
77 video ? static_cast<size_t>(1) : 0); | 75 video ? static_cast<size_t>(1) : 0); |
78 MediaStreamSource::SourceStoppedCallback dummy_callback; | 76 MediaStreamSource::SourceStoppedCallback dummy_callback; |
79 if (video) { | 77 if (video) { |
80 blink::WebMediaStreamSource video_source; | 78 blink::WebMediaStreamSource video_source; |
81 video_source.initialize("video", | 79 video_source.initialize("video", blink::WebMediaStreamSource::TypeVideo, |
82 blink::WebMediaStreamSource::TypeVideo, | 80 "video"); |
83 "video", | |
84 false /* remote */); | |
85 MediaStreamVideoSource* native_source = | 81 MediaStreamVideoSource* native_source = |
86 new MockMediaStreamVideoSource(false); | 82 new MockMediaStreamVideoSource(false); |
87 video_source.setExtraData(native_source); | 83 video_source.setExtraData(native_source); |
88 blink::WebMediaConstraints constraints; | 84 blink::WebMediaConstraints constraints; |
89 constraints.initialize(); | 85 constraints.initialize(); |
90 video_track_vector[0] = MediaStreamVideoTrack::CreateVideoTrack( | 86 video_track_vector[0] = MediaStreamVideoTrack::CreateVideoTrack( |
91 native_source, constraints, | 87 native_source, constraints, |
92 MediaStreamVideoSource::ConstraintsCallback(), true); | 88 MediaStreamVideoSource::ConstraintsCallback(), true); |
93 } | 89 } |
94 | 90 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 } | 128 } |
133 | 129 |
134 // Test that we don't crash if a MediaStream is created in Blink with an unknown | 130 // Test that we don't crash if a MediaStream is created in Blink with an unknown |
135 // audio sources. This can happen if a MediaStream is created with | 131 // audio sources. This can happen if a MediaStream is created with |
136 // remote audio track. | 132 // remote audio track. |
137 TEST_F(WebRtcMediaStreamAdapterTest, | 133 TEST_F(WebRtcMediaStreamAdapterTest, |
138 CreateWebRtcMediaStreamWithoutAudioSource) { | 134 CreateWebRtcMediaStreamWithoutAudioSource) { |
139 // Create a blink MediaStream description. | 135 // Create a blink MediaStream description. |
140 blink::WebMediaStreamSource audio_source; | 136 blink::WebMediaStreamSource audio_source; |
141 audio_source.initialize("audio source", | 137 audio_source.initialize("audio source", |
142 blink::WebMediaStreamSource::TypeAudio, | 138 blink::WebMediaStreamSource::TypeAudio, "something"); |
143 "something", | |
144 false /* remote */); | |
145 | 139 |
146 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( | 140 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
147 static_cast<size_t>(1)); | 141 static_cast<size_t>(1)); |
148 audio_tracks[0].initialize(audio_source.id(), audio_source); | 142 audio_tracks[0].initialize(audio_source.id(), audio_source); |
149 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( | 143 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
150 static_cast<size_t>(0)); | 144 static_cast<size_t>(0)); |
151 | 145 |
152 blink::WebMediaStream blink_stream; | 146 blink::WebMediaStream blink_stream; |
153 blink_stream.initialize("new stream", audio_tracks, video_tracks); | 147 blink_stream.initialize("new stream", audio_tracks, video_tracks); |
154 blink_stream.setExtraData(new content::MediaStream()); | 148 blink_stream.setExtraData(new content::MediaStream()); |
(...skipping 19 matching lines...) Expand all Loading... |
174 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); | 168 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); |
175 | 169 |
176 native_stream->AddTrack(audio_tracks[0]); | 170 native_stream->AddTrack(audio_tracks[0]); |
177 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); | 171 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); |
178 | 172 |
179 native_stream->AddTrack(video_tracks[0]); | 173 native_stream->AddTrack(video_tracks[0]); |
180 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); | 174 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); |
181 } | 175 } |
182 | 176 |
183 } // namespace content | 177 } // namespace content |
OLD | NEW |