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

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

Issue 1849003002: Add video frame refresh to MediaStream and VideoCapture stacks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nick's PS3 comments (moving non-observer impl out of MSVideoSink interface). Created 4 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
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 // Notes about usage of this object by VideoCaptureImplManager. 5 // Notes about usage of this object by VideoCaptureImplManager.
6 // 6 //
7 // VideoCaptureImplManager access this object by using a Unretained() 7 // VideoCaptureImplManager access this object by using a Unretained()
8 // binding and tasks on the IO thread. It is then important that 8 // binding and tasks on the IO thread. It is then important that
9 // VideoCaptureImpl never post task to itself. All operations must be 9 // VideoCaptureImpl never post task to itself. All operations must be
10 // synchronous. 10 // synchronous.
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 if (clients_.empty()) { 211 if (clients_.empty()) {
212 DVLOG(1) << "StopCapture: No more client, stopping ..."; 212 DVLOG(1) << "StopCapture: No more client, stopping ...";
213 StopDevice(); 213 StopDevice();
214 client_buffers_.clear(); 214 client_buffers_.clear();
215 client_buffer2s_.clear(); 215 client_buffer2s_.clear();
216 weak_factory_.InvalidateWeakPtrs(); 216 weak_factory_.InvalidateWeakPtrs();
217 } 217 }
218 } 218 }
219 219
220 void VideoCaptureImpl::RequestRefreshFrame() {
221 DCHECK(io_task_runner_->BelongsToCurrentThread());
222 Send(new VideoCaptureHostMsg_RequestRefreshFrame(device_id_));
223 }
224
220 void VideoCaptureImpl::GetDeviceSupportedFormats( 225 void VideoCaptureImpl::GetDeviceSupportedFormats(
221 const VideoCaptureDeviceFormatsCB& callback) { 226 const VideoCaptureDeviceFormatsCB& callback) {
222 DCHECK(io_task_runner_->BelongsToCurrentThread()); 227 DCHECK(io_task_runner_->BelongsToCurrentThread());
223 device_formats_cb_queue_.push_back(callback); 228 device_formats_cb_queue_.push_back(callback);
224 if (device_formats_cb_queue_.size() == 1) 229 if (device_formats_cb_queue_.size() == 1)
225 Send(new VideoCaptureHostMsg_GetDeviceSupportedFormats(device_id_, 230 Send(new VideoCaptureHostMsg_GetDeviceSupportedFormats(device_id_,
226 session_id_)); 231 session_id_));
227 } 232 }
228 233
229 void VideoCaptureImpl::GetDeviceFormatsInUse( 234 void VideoCaptureImpl::GetDeviceFormatsInUse(
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 double consumer_resource_utilization = -1.0; 557 double consumer_resource_utilization = -1.0;
553 if (!metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION, 558 if (!metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION,
554 &consumer_resource_utilization)) { 559 &consumer_resource_utilization)) {
555 consumer_resource_utilization = -1.0; 560 consumer_resource_utilization = -1.0;
556 } 561 }
557 562
558 callback_to_io_thread.Run(*release_sync_token, consumer_resource_utilization); 563 callback_to_io_thread.Run(*release_sync_token, consumer_resource_utilization);
559 } 564 }
560 565
561 } // namespace content 566 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl.h ('k') | content/renderer/media/video_capture_impl_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698