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

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

Issue 2803183002: Revert of Move getUserMedia finish to "when audio track configured". (Closed)
Patch Set: Created 3 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
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/user_media_client_impl.h" 5 #include "content/renderer/media/user_media_client_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 static void SignalSourceReady( 243 static void SignalSourceReady(
244 const MediaStreamSource::ConstraintsCallback& source_ready, 244 const MediaStreamSource::ConstraintsCallback& source_ready,
245 MediaStreamSource* source) { 245 MediaStreamSource* source) {
246 source_ready.Run(source, MEDIA_DEVICE_OK, ""); 246 source_ready.Run(source, MEDIA_DEVICE_OK, "");
247 } 247 }
248 248
249 MediaStreamAudioSource* CreateAudioSource( 249 MediaStreamAudioSource* CreateAudioSource(
250 const StreamDeviceInfo& device, 250 const StreamDeviceInfo& device,
251 const blink::WebMediaConstraints& constraints, 251 const blink::WebMediaConstraints& constraints,
252 const MediaStreamSource::ConstraintsCallback& source_ready) override { 252 const MediaStreamSource::ConstraintsCallback& source_ready) override {
253 MediaStreamAudioSource* source;
253 if (create_source_that_fails_) { 254 if (create_source_that_fails_) {
254 class FailedAtLifeAudioSource : public MediaStreamAudioSource { 255 class FailedAtLifeAudioSource : public MediaStreamAudioSource {
255 public: 256 public:
256 FailedAtLifeAudioSource() : MediaStreamAudioSource(true) {} 257 FailedAtLifeAudioSource() : MediaStreamAudioSource(true) {}
257 ~FailedAtLifeAudioSource() override {} 258 ~FailedAtLifeAudioSource() override {}
258 protected: 259 protected:
259 bool EnsureSourceIsStarted() override { 260 bool EnsureSourceIsStarted() override {
260 return false; 261 return false;
261 } 262 }
262 }; 263 };
263 FailedAtLifeAudioSource* source = new FailedAtLifeAudioSource(); 264 source = new FailedAtLifeAudioSource();
264 source->SetDeviceInfo(device);
265 return source;
266 } else { 265 } else {
267 class GeneratingAudioSource : public MediaStreamAudioSource { 266 source = new MediaStreamAudioSource(true);
268 public: 267 }
269 GeneratingAudioSource() : MediaStreamAudioSource(true) { 268 source->SetDeviceInfo(device);
270 SetFormat(
271 media::AudioParameters(media::AudioParameters::AUDIO_PCM_LINEAR,
272 media::CHANNEL_LAYOUT_MONO, 8000, 8, 1));
273 }
274 ~GeneratingAudioSource() override {}
275 void InjectAudio() {
276 std::unique_ptr<media::AudioBus> data =
277 media::AudioBus::Create(GetAudioParameters());
278 DeliverDataToTracks(*data, base::TimeTicks());
279 }
280 bool ConnectToTrack(
281 const blink::WebMediaStreamTrack& blink_track) override {
282 bool result = MediaStreamAudioSource::ConnectToTrack(blink_track);
283 // Queue a task to inject an audio sample after other stuff finishes.
284 // RunUntilIdle is required for this task to complete.
285 // We assume that "source" will survive long enough that it's safe
286 // to use base::Unretained.
287 base::ThreadTaskRunnerHandle::Get()->PostTask(
288 FROM_HERE, base::Bind(&GeneratingAudioSource::InjectAudio,
289 base::Unretained(this)));
290 return result;
291 }
292 };
293 269
294 GeneratingAudioSource* source = new GeneratingAudioSource(); 270 if (!create_source_that_fails_) {
295 source->SetDeviceInfo(device); 271 // RunUntilIdle is required for this task to complete.
296 // Queue a task to inform about the source being ready.
297 base::ThreadTaskRunnerHandle::Get()->PostTask( 272 base::ThreadTaskRunnerHandle::Get()->PostTask(
298 FROM_HERE, 273 FROM_HERE,
299 base::Bind(&UserMediaClientImplUnderTest::SignalSourceReady, 274 base::Bind(&UserMediaClientImplUnderTest::SignalSourceReady,
300 source_ready, source)); 275 source_ready, source));
301 return source;
302 } 276 }
277
278 return source;
303 } 279 }
304 280
305 MediaStreamVideoSource* CreateVideoSource( 281 MediaStreamVideoSource* CreateVideoSource(
306 const StreamDeviceInfo& device, 282 const StreamDeviceInfo& device,
307 const MediaStreamSource::SourceStoppedCallback& stop_callback) override { 283 const MediaStreamSource::SourceStoppedCallback& stop_callback) override {
308 video_source_ = new MockMediaStreamVideoCapturerSource(device, 284 video_source_ = new MockMediaStreamVideoCapturerSource(device,
309 stop_callback, 285 stop_callback,
310 factory_); 286 factory_);
311 return video_source_; 287 return video_source_;
312 } 288 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 } 355 }
380 356
381 void LoadNewDocumentInFrame() { 357 void LoadNewDocumentInFrame() {
382 user_media_client_impl_->WillCommitProvisionalLoad(); 358 user_media_client_impl_->WillCommitProvisionalLoad();
383 } 359 }
384 360
385 blink::WebMediaStream RequestLocalMediaStream() { 361 blink::WebMediaStream RequestLocalMediaStream() {
386 user_media_client_impl_->RequestUserMediaForTest(); 362 user_media_client_impl_->RequestUserMediaForTest();
387 FakeMediaStreamDispatcherRequestUserMediaComplete(); 363 FakeMediaStreamDispatcherRequestUserMediaComplete();
388 StartMockedVideoSource(); 364 StartMockedVideoSource();
365
389 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED, 366 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
390 user_media_client_impl_->request_state()); 367 user_media_client_impl_->request_state());
391 368
392 blink::WebMediaStream desc = 369 blink::WebMediaStream desc =
393 user_media_client_impl_->last_generated_stream(); 370 user_media_client_impl_->last_generated_stream();
394 content::MediaStream* native_stream = 371 content::MediaStream* native_stream =
395 content::MediaStream::GetMediaStream(desc); 372 content::MediaStream::GetMediaStream(desc);
396 if (!native_stream) { 373 if (!native_stream) {
397 ADD_FAILURE(); 374 ADD_FAILURE();
398 return desc; 375 return desc;
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 CreateDeviceConstraints(kFakeAudioInputDeviceId1); 925 CreateDeviceConstraints(kFakeAudioInputDeviceId1);
949 blink::WebMediaConstraints video_constraints = 926 blink::WebMediaConstraints video_constraints =
950 CreateFacingModeConstraints("environment"); 927 CreateFacingModeConstraints("environment");
951 // kFakeVideoInputDeviceId2 has environment facing mode. 928 // kFakeVideoInputDeviceId2 has environment facing mode.
952 TestValidRequestWithConstraints(audio_constraints, video_constraints, 929 TestValidRequestWithConstraints(audio_constraints, video_constraints,
953 kFakeAudioInputDeviceId1, 930 kFakeAudioInputDeviceId1,
954 kFakeVideoInputDeviceId2); 931 kFakeVideoInputDeviceId2);
955 } 932 }
956 933
957 } // namespace content 934 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698