Chromium Code Reviews| Index: services/video_capture/device_media_to_mojo_adapter.cc |
| diff --git a/services/video_capture/device_media_to_mojo_adapter.cc b/services/video_capture/device_media_to_mojo_adapter.cc |
| index a68c87fbb6b1e19c1fd14cebd438103079f7631b..198af87b9c50adedaed46ef5b4e97d98a8f1ed35 100644 |
| --- a/services/video_capture/device_media_to_mojo_adapter.cc |
| +++ b/services/video_capture/device_media_to_mojo_adapter.cc |
| @@ -11,6 +11,10 @@ |
| #include "media/capture/video/video_capture_jpeg_decoder.h" |
| #include "services/video_capture/receiver_mojo_to_media_adapter.h" |
| +namespace { |
| +static const int kMaxBufferCount = 3; |
|
emircan
2017/04/19 18:16:48
Add a comment.
chfremer
2017/04/19 23:03:37
Done.
|
| +} |
| + |
| namespace video_capture { |
| DeviceMediaToMojoAdapter::DeviceMediaToMojoAdapter( |
| @@ -22,7 +26,8 @@ DeviceMediaToMojoAdapter::DeviceMediaToMojoAdapter( |
| device_running_(false) {} |
| DeviceMediaToMojoAdapter::~DeviceMediaToMojoAdapter() { |
| - Stop(); |
| + if (device_running_) |
| + device_->StopAndDeAllocate(); |
| } |
| void DeviceMediaToMojoAdapter::Start( |
| @@ -36,12 +41,11 @@ void DeviceMediaToMojoAdapter::Start( |
| base::MakeUnique<ReceiverMojoToMediaAdapter>(std::move(receiver)); |
| // Create a dedicated buffer pool for the device usage session. |
| - const int kMaxBufferCount = 2; |
| auto buffer_tracker_factory = |
| base::MakeUnique<media::VideoCaptureBufferTrackerFactoryImpl>(); |
| scoped_refptr<media::VideoCaptureBufferPool> buffer_pool( |
| new media::VideoCaptureBufferPoolImpl(std::move(buffer_tracker_factory), |
| - kMaxBufferCount)); |
| + max_buffer_pool_buffer_count())); |
| auto device_client = base::MakeUnique<media::VideoCaptureDeviceClient>( |
| std::move(media_receiver), buffer_pool, jpeg_decoder_factory_callback_); |
| @@ -50,15 +54,26 @@ void DeviceMediaToMojoAdapter::Start( |
| device_running_ = true; |
| } |
| +void DeviceMediaToMojoAdapter::OnReceiverReportingUtilization( |
| + int32_t frame_feedback_id, |
| + double utilization) { |
| + device_->OnUtilizationReport(frame_feedback_id, utilization); |
| +} |
| + |
| void DeviceMediaToMojoAdapter::Stop() { |
| if (device_running_ == false) |
| return; |
| - device_->StopAndDeAllocate(); |
| device_running_ = false; |
| + device_->StopAndDeAllocate(); |
| } |
| void DeviceMediaToMojoAdapter::OnClientConnectionErrorOrClose() { |
| Stop(); |
| } |
| +// static |
| +int DeviceMediaToMojoAdapter::max_buffer_pool_buffer_count() { |
| + return kMaxBufferCount; |
| +} |
| + |
| } // namespace video_capture |