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

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

Issue 155853002: Chrome MediaStream VideoTrack implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed a comment. Created 6 years, 9 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_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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698