OLD | NEW |
---|---|
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_impl.h" | 5 #include "content/renderer/media/media_stream_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
477 UserMediaRequestInfo* request) { | 477 UserMediaRequestInfo* request) { |
478 DCHECK_EQ(devices.size(), webkit_tracks->size()); | 478 DCHECK_EQ(devices.size(), webkit_tracks->size()); |
479 | 479 |
480 for (size_t i = 0; i < devices.size(); ++i) { | 480 for (size_t i = 0; i < devices.size(); ++i) { |
481 blink::WebMediaStreamSource webkit_source; | 481 blink::WebMediaStreamSource webkit_source; |
482 InitializeSourceObject(devices[i], | 482 InitializeSourceObject(devices[i], |
483 blink::WebMediaStreamSource::TypeVideo, | 483 blink::WebMediaStreamSource::TypeVideo, |
484 constraints, | 484 constraints, |
485 request->frame, | 485 request->frame, |
486 &webkit_source); | 486 &webkit_source); |
487 (*webkit_tracks)[i].initialize(webkit_source); | 487 (*webkit_tracks)[i] = |
488 (*webkit_tracks)[i].setExtraData(new MediaStreamVideoTrack( | 488 request->CreateAndStartVideoTrack(webkit_source, constraints, |
489 dependency_factory_)); | 489 dependency_factory_); |
490 request->StartTrack((*webkit_tracks)[i], constraints); | |
491 } | 490 } |
492 } | 491 } |
493 | 492 |
494 void MediaStreamImpl::CreateAudioTracks( | 493 void MediaStreamImpl::CreateAudioTracks( |
495 const StreamDeviceInfoArray& devices, | 494 const StreamDeviceInfoArray& devices, |
496 const blink::WebMediaConstraints& constraints, | 495 const blink::WebMediaConstraints& constraints, |
497 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, | 496 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, |
498 UserMediaRequestInfo* request) { | 497 UserMediaRequestInfo* request) { |
499 DCHECK_EQ(devices.size(), webkit_tracks->size()); | 498 DCHECK_EQ(devices.size(), webkit_tracks->size()); |
500 | 499 |
(...skipping 20 matching lines...) Expand all Loading... | |
521 } | 520 } |
522 | 521 |
523 for (size_t i = 0; i < overridden_audio_array.size(); ++i) { | 522 for (size_t i = 0; i < overridden_audio_array.size(); ++i) { |
524 blink::WebMediaStreamSource webkit_source; | 523 blink::WebMediaStreamSource webkit_source; |
525 InitializeSourceObject(overridden_audio_array[i], | 524 InitializeSourceObject(overridden_audio_array[i], |
526 blink::WebMediaStreamSource::TypeAudio, | 525 blink::WebMediaStreamSource::TypeAudio, |
527 constraints, | 526 constraints, |
528 request->frame, | 527 request->frame, |
529 &webkit_source); | 528 &webkit_source); |
530 (*webkit_tracks)[i].initialize(webkit_source); | 529 (*webkit_tracks)[i].initialize(webkit_source); |
531 request->StartTrack((*webkit_tracks)[i], constraints); | 530 request->StartAudioTrack((*webkit_tracks)[i], constraints); |
532 } | 531 } |
533 } | 532 } |
534 | 533 |
535 void MediaStreamImpl::OnCreateNativeTracksCompleted( | 534 void MediaStreamImpl::OnCreateNativeTracksCompleted( |
536 UserMediaRequestInfo* request, | 535 UserMediaRequestInfo* request, |
537 bool request_succeeded) { | 536 bool request_succeeded) { |
538 DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete(" | 537 DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete(" |
539 << "{request_id = " << request->request_id << "} " | 538 << "{request_id = " << request->request_id << "} " |
540 << "{request_succeeded = " << request_succeeded << "})"; | 539 << "{request_succeeded = " << request_succeeded << "})"; |
541 CompleteGetUserMediaRequest(request->web_stream, &request->request, | 540 CompleteGetUserMediaRequest(request->web_stream, &request->request, |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
833 enable_automatic_output_device_selection), | 832 enable_automatic_output_device_selection), |
834 frame(frame), | 833 frame(frame), |
835 request(request), | 834 request(request), |
836 request_failed_(false) { | 835 request_failed_(false) { |
837 } | 836 } |
838 | 837 |
839 MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() { | 838 MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() { |
840 DVLOG(1) << "~UserMediaRequestInfo"; | 839 DVLOG(1) << "~UserMediaRequestInfo"; |
841 } | 840 } |
842 | 841 |
843 void MediaStreamImpl::UserMediaRequestInfo::StartTrack( | 842 void MediaStreamImpl::UserMediaRequestInfo::StartAudioTrack( |
844 const blink::WebMediaStreamTrack& track, | 843 const blink::WebMediaStreamTrack& track, |
845 const blink::WebMediaConstraints& constraints) { | 844 const blink::WebMediaConstraints& constraints) { |
846 MediaStreamSource* native_source = | 845 DCHECK(track.source().type() == blink::WebMediaStreamSource::TypeAudio); |
847 static_cast <MediaStreamSource*>(track.source().extraData()); | 846 MediaStreamAudioSource* native_source = |
847 static_cast <MediaStreamAudioSource*>(track.source().extraData()); | |
848 DCHECK(native_source); | 848 DCHECK(native_source); |
849 | 849 |
850 sources_.push_back(track.source()); | 850 sources_.push_back(track.source()); |
851 sources_waiting_for_callback_.push_back(native_source); | 851 sources_waiting_for_callback_.push_back(native_source); |
852 native_source->AddTrack( | 852 native_source->AddTrack( |
853 track, constraints, base::Bind( | 853 track, constraints, base::Bind( |
854 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, | 854 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, |
855 AsWeakPtr())); | 855 AsWeakPtr())); |
856 } | 856 } |
857 | 857 |
858 blink::WebMediaStreamTrack | |
859 MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack( | |
860 const blink::WebMediaStreamSource& source, | |
861 const blink::WebMediaConstraints& constraints, | |
862 MediaStreamDependencyFactory* factory) { | |
863 DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo); | |
864 MediaStreamVideoSource* native_source = | |
865 MediaStreamVideoSource::GetVideoSource(source); | |
866 DCHECK(native_source); | |
867 sources_.push_back(source); | |
868 sources_waiting_for_callback_.push_back(native_source); | |
869 return MediaStreamVideoTrack::CreateVideoTrack( | |
Ronghua Wu (Left Chromium)
2014/03/04 01:04:11
indention
perkj_chrome
2014/03/04 10:44:51
Done.
| |
870 native_source, constraints, base::Bind( | |
871 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, | |
872 AsWeakPtr()), | |
873 true, factory); | |
874 } | |
875 | |
858 void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted( | 876 void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted( |
859 const ResourcesReady& callback) { | 877 const ResourcesReady& callback) { |
860 DCHECK(ready_callback_.is_null()); | 878 DCHECK(ready_callback_.is_null()); |
861 ready_callback_ = callback; | 879 ready_callback_ = callback; |
862 CheckAllTracksStarted(); | 880 CheckAllTracksStarted(); |
863 } | 881 } |
864 | 882 |
865 void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted( | 883 void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted( |
866 MediaStreamSource* source, bool success) { | 884 MediaStreamSource* source, bool success) { |
867 DVLOG(1) << "OnTrackStarted"; | 885 DVLOG(1) << "OnTrackStarted"; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
900 sources_.begin(); | 918 sources_.begin(); |
901 it != sources_.end(); ++it) { | 919 it != sources_.end(); ++it) { |
902 if (source.id() == it->id()) { | 920 if (source.id() == it->id()) { |
903 sources_.erase(it); | 921 sources_.erase(it); |
904 return; | 922 return; |
905 } | 923 } |
906 } | 924 } |
907 } | 925 } |
908 | 926 |
909 } // namespace content | 927 } // namespace content |
OLD | NEW |