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

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

Issue 2339193002: Wip - cl for implemening VideoTrackSource::ApplyConstraints(constraints, VideoTrack) and adopt safe…
Patch Set: Created 4 years, 3 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
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 <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, 666 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
667 UserMediaRequestInfo* request) { 667 UserMediaRequestInfo* request) {
668 DCHECK_EQ(devices.size(), webkit_tracks->size()); 668 DCHECK_EQ(devices.size(), webkit_tracks->size());
669 669
670 for (size_t i = 0; i < devices.size(); ++i) { 670 for (size_t i = 0; i < devices.size(); ++i) {
671 blink::WebMediaStreamSource webkit_source; 671 blink::WebMediaStreamSource webkit_source;
672 InitializeSourceObject(devices[i], 672 InitializeSourceObject(devices[i],
673 blink::WebMediaStreamSource::TypeVideo, 673 blink::WebMediaStreamSource::TypeVideo,
674 constraints, 674 constraints,
675 &webkit_source); 675 &webkit_source);
676 (*webkit_tracks)[i] = 676 (*webkit_tracks)[i].initialize(webkit_source);
677 request->CreateAndStartVideoTrack(webkit_source, constraints); 677 request->StartVideoTrack((*webkit_tracks)[i], constraints);
678 } 678 }
679 } 679 }
680 680
681 void UserMediaClientImpl::CreateAudioTracks( 681 void UserMediaClientImpl::CreateAudioTracks(
682 const StreamDeviceInfoArray& devices, 682 const StreamDeviceInfoArray& devices,
683 const blink::WebMediaConstraints& constraints, 683 const blink::WebMediaConstraints& constraints,
684 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, 684 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
685 UserMediaRequestInfo* request) { 685 UserMediaRequestInfo* request) {
686 DCHECK_EQ(devices.size(), webkit_tracks->size()); 686 DCHECK_EQ(devices.size(), webkit_tracks->size());
687 687
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 DCHECK(native_source); 1103 DCHECK(native_source);
1104 1104
1105 sources_.push_back(track.source()); 1105 sources_.push_back(track.source());
1106 sources_waiting_for_callback_.push_back(native_source); 1106 sources_waiting_for_callback_.push_back(native_source);
1107 if (native_source->ConnectToTrack(track)) 1107 if (native_source->ConnectToTrack(track))
1108 OnTrackStarted(native_source, MEDIA_DEVICE_OK, ""); 1108 OnTrackStarted(native_source, MEDIA_DEVICE_OK, "");
1109 else 1109 else
1110 OnTrackStarted(native_source, MEDIA_DEVICE_TRACK_START_FAILURE, ""); 1110 OnTrackStarted(native_source, MEDIA_DEVICE_TRACK_START_FAILURE, "");
1111 } 1111 }
1112 1112
1113 blink::WebMediaStreamTrack 1113 void UserMediaClientImpl::UserMediaRequestInfo::StartVideoTrack(
1114 UserMediaClientImpl::UserMediaRequestInfo::CreateAndStartVideoTrack( 1114 const blink::WebMediaStreamTrack& track,
1115 const blink::WebMediaStreamSource& source,
1116 const blink::WebMediaConstraints& constraints) { 1115 const blink::WebMediaConstraints& constraints) {
1117 DCHECK(source.getType() == blink::WebMediaStreamSource::TypeVideo); 1116 DCHECK(track.source().getType() == blink::WebMediaStreamSource::TypeVideo);
1118 MediaStreamVideoSource* native_source = 1117 MediaStreamVideoSource* native_source =
1119 MediaStreamVideoSource::GetVideoSource(source); 1118 MediaStreamVideoSource::GetVideoSource(track.source());
1119
1120 DCHECK(native_source); 1120 DCHECK(native_source);
1121 sources_.push_back(source); 1121 sources_.push_back(track.source());
1122 sources_waiting_for_callback_.push_back(native_source); 1122 sources_waiting_for_callback_.push_back(native_source);
1123 return MediaStreamVideoTrack::CreateVideoTrack( 1123 if (native_source->ConnectToTrack(track)) {
1124 native_source, constraints, base::Bind( 1124 native_source->ApplyConstraints(track, constraints, base::Bind(
1125 &UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted, 1125 &UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted,
1126 AsWeakPtr()), 1126 AsWeakPtr()));
1127 true); 1127 } else {
1128 OnTrackStarted(native_source, MEDIA_DEVICE_TRACK_START_FAILURE, "");
1129 }
1128 } 1130 }
1129 1131
1130 void UserMediaClientImpl::UserMediaRequestInfo::CallbackOnTracksStarted( 1132 void UserMediaClientImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
1131 const ResourcesReady& callback) { 1133 const ResourcesReady& callback) {
1132 DCHECK(ready_callback_.is_null()); 1134 DCHECK(ready_callback_.is_null());
1133 ready_callback_ = callback; 1135 ready_callback_ = callback;
1134 CheckAllTracksStarted(); 1136 CheckAllTracksStarted();
1135 } 1137 }
1136 1138
1137 void UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted( 1139 void UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 1188
1187 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const { 1189 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const {
1188 return !sources_waiting_for_callback_.empty(); 1190 return !sources_waiting_for_callback_.empty();
1189 } 1191 }
1190 1192
1191 void UserMediaClientImpl::OnDestruct() { 1193 void UserMediaClientImpl::OnDestruct() {
1192 delete this; 1194 delete this;
1193 } 1195 }
1194 1196
1195 } // namespace content 1197 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/user_media_client_impl.h ('k') | content/renderer/pepper/pepper_media_stream_video_track_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698