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

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: Removed whitespaces... 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 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 UserMediaRequestInfo* request) { 471 UserMediaRequestInfo* request) {
472 DCHECK_EQ(devices.size(), webkit_tracks->size()); 472 DCHECK_EQ(devices.size(), webkit_tracks->size());
473 473
474 for (size_t i = 0; i < devices.size(); ++i) { 474 for (size_t i = 0; i < devices.size(); ++i) {
475 blink::WebMediaStreamSource webkit_source; 475 blink::WebMediaStreamSource webkit_source;
476 InitializeSourceObject(devices[i], 476 InitializeSourceObject(devices[i],
477 blink::WebMediaStreamSource::TypeVideo, 477 blink::WebMediaStreamSource::TypeVideo,
478 constraints, 478 constraints,
479 request->frame, 479 request->frame,
480 &webkit_source); 480 &webkit_source);
481 (*webkit_tracks)[i].initialize(webkit_source); 481 (*webkit_tracks)[i] =
482 (*webkit_tracks)[i].setExtraData(new MediaStreamVideoTrack( 482 request->CreateAndStartVideoTrack(webkit_source, constraints,
483 dependency_factory_)); 483 dependency_factory_);
484 request->StartTrack((*webkit_tracks)[i], constraints);
485 } 484 }
486 } 485 }
487 486
488 void MediaStreamImpl::CreateAudioTracks( 487 void MediaStreamImpl::CreateAudioTracks(
489 const StreamDeviceInfoArray& devices, 488 const StreamDeviceInfoArray& devices,
490 const blink::WebMediaConstraints& constraints, 489 const blink::WebMediaConstraints& constraints,
491 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, 490 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
492 UserMediaRequestInfo* request) { 491 UserMediaRequestInfo* request) {
493 DCHECK_EQ(devices.size(), webkit_tracks->size()); 492 DCHECK_EQ(devices.size(), webkit_tracks->size());
494 493
(...skipping 20 matching lines...) Expand all
515 } 514 }
516 515
517 for (size_t i = 0; i < overridden_audio_array.size(); ++i) { 516 for (size_t i = 0; i < overridden_audio_array.size(); ++i) {
518 blink::WebMediaStreamSource webkit_source; 517 blink::WebMediaStreamSource webkit_source;
519 InitializeSourceObject(overridden_audio_array[i], 518 InitializeSourceObject(overridden_audio_array[i],
520 blink::WebMediaStreamSource::TypeAudio, 519 blink::WebMediaStreamSource::TypeAudio,
521 constraints, 520 constraints,
522 request->frame, 521 request->frame,
523 &webkit_source); 522 &webkit_source);
524 (*webkit_tracks)[i].initialize(webkit_source); 523 (*webkit_tracks)[i].initialize(webkit_source);
525 request->StartTrack((*webkit_tracks)[i], constraints); 524 request->StartAudioTrack((*webkit_tracks)[i], constraints);
526 } 525 }
527 } 526 }
528 527
529 void MediaStreamImpl::OnCreateNativeTracksCompleted( 528 void MediaStreamImpl::OnCreateNativeTracksCompleted(
530 UserMediaRequestInfo* request, 529 UserMediaRequestInfo* request,
531 bool request_succeeded) { 530 bool request_succeeded) {
532 DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete(" 531 DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete("
533 << "{request_id = " << request->request_id << "} " 532 << "{request_id = " << request->request_id << "} "
534 << "{request_succeeded = " << request_succeeded << "})"; 533 << "{request_succeeded = " << request_succeeded << "})";
535 CompleteGetUserMediaRequest(request->web_stream, &request->request, 534 CompleteGetUserMediaRequest(request->web_stream, &request->request,
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 enable_automatic_output_device_selection), 826 enable_automatic_output_device_selection),
828 frame(frame), 827 frame(frame),
829 request(request), 828 request(request),
830 request_failed_(false) { 829 request_failed_(false) {
831 } 830 }
832 831
833 MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() { 832 MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() {
834 DVLOG(1) << "~UserMediaRequestInfo"; 833 DVLOG(1) << "~UserMediaRequestInfo";
835 } 834 }
836 835
837 void MediaStreamImpl::UserMediaRequestInfo::StartTrack( 836 void MediaStreamImpl::UserMediaRequestInfo::StartAudioTrack(
838 const blink::WebMediaStreamTrack& track, 837 const blink::WebMediaStreamTrack& track,
839 const blink::WebMediaConstraints& constraints) { 838 const blink::WebMediaConstraints& constraints) {
840 MediaStreamSource* native_source = 839 DCHECK(track.source().type() == blink::WebMediaStreamSource::TypeAudio);
841 static_cast <MediaStreamSource*>(track.source().extraData()); 840 MediaStreamAudioSource* native_source =
841 static_cast <MediaStreamAudioSource*>(track.source().extraData());
842 DCHECK(native_source); 842 DCHECK(native_source);
843 843
844 sources_.push_back(track.source()); 844 sources_.push_back(track.source());
845 sources_waiting_for_callback_.push_back(native_source); 845 sources_waiting_for_callback_.push_back(native_source);
846 native_source->AddTrack( 846 native_source->AddTrack(
847 track, constraints, base::Bind( 847 track, constraints, base::Bind(
848 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, 848 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted,
849 AsWeakPtr())); 849 AsWeakPtr()));
850 } 850 }
851 851
852 blink::WebMediaStreamTrack
853 MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack(
854 const blink::WebMediaStreamSource& source,
855 const blink::WebMediaConstraints& constraints,
856 MediaStreamDependencyFactory* factory) {
857 DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo);
858 MediaStreamVideoSource* native_source =
859 MediaStreamVideoSource::GetVideoSource(source);
860 DCHECK(native_source);
861 sources_.push_back(source);
862 sources_waiting_for_callback_.push_back(native_source);
863 return MediaStreamVideoTrack::CreateVideoTrack(
864 native_source, constraints, base::Bind(
865 &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted,
866 AsWeakPtr()),
867 true, factory);
868 }
869
852 void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted( 870 void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
853 const ResourcesReady& callback) { 871 const ResourcesReady& callback) {
854 DCHECK(ready_callback_.is_null()); 872 DCHECK(ready_callback_.is_null());
855 ready_callback_ = callback; 873 ready_callback_ = callback;
856 CheckAllTracksStarted(); 874 CheckAllTracksStarted();
857 } 875 }
858 876
859 void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted( 877 void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted(
860 MediaStreamSource* source, bool success) { 878 MediaStreamSource* source, bool success) {
861 DVLOG(1) << "OnTrackStarted"; 879 DVLOG(1) << "OnTrackStarted";
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 sources_.begin(); 912 sources_.begin();
895 it != sources_.end(); ++it) { 913 it != sources_.end(); ++it) {
896 if (source.id() == it->id()) { 914 if (source.id() == it->id()) {
897 sources_.erase(it); 915 sources_.erase(it);
898 return; 916 return;
899 } 917 }
900 } 918 }
901 } 919 }
902 920
903 } // namespace content 921 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_impl.h ('k') | content/renderer/media/media_stream_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698