| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_capture_from_element/canvas_capture_handler.h" | 5 #include "content/renderer/media_capture_from_element/canvas_capture_handler.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 VideoCapturerSource(base::WeakPtr<CanvasCaptureHandler> canvas_handler, | 42 VideoCapturerSource(base::WeakPtr<CanvasCaptureHandler> canvas_handler, |
| 43 double frame_rate) | 43 double frame_rate) |
| 44 : frame_rate_(static_cast<float>( | 44 : frame_rate_(static_cast<float>( |
| 45 std::min(static_cast<double>(media::limits::kMaxFramesPerSecond), | 45 std::min(static_cast<double>(media::limits::kMaxFramesPerSecond), |
| 46 frame_rate))), | 46 frame_rate))), |
| 47 canvas_handler_(canvas_handler) { | 47 canvas_handler_(canvas_handler) { |
| 48 DCHECK_LE(0, frame_rate_); | 48 DCHECK_LE(0, frame_rate_); |
| 49 } | 49 } |
| 50 | 50 |
| 51 protected: | 51 protected: |
| 52 void GetCurrentSupportedFormats( | 52 media::VideoCaptureFormats GetPreferredFormats() override { |
| 53 int max_requested_width, | |
| 54 int max_requested_height, | |
| 55 double max_requested_frame_rate, | |
| 56 const VideoCaptureDeviceFormatsCB& callback) override { | |
| 57 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 53 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| 58 const blink::WebSize& size = canvas_handler_->GetSourceSize(); | 54 const blink::WebSize& size = canvas_handler_->GetSourceSize(); |
| 59 media::VideoCaptureFormats formats; | 55 media::VideoCaptureFormats formats; |
| 60 formats.push_back( | 56 formats.push_back( |
| 61 media::VideoCaptureFormat(gfx::Size(size.width, size.height), | 57 media::VideoCaptureFormat(gfx::Size(size.width, size.height), |
| 62 frame_rate_, media::PIXEL_FORMAT_I420)); | 58 frame_rate_, media::PIXEL_FORMAT_I420)); |
| 63 formats.push_back( | 59 formats.push_back( |
| 64 media::VideoCaptureFormat(gfx::Size(size.width, size.height), | 60 media::VideoCaptureFormat(gfx::Size(size.width, size.height), |
| 65 frame_rate_, media::PIXEL_FORMAT_YV12A)); | 61 frame_rate_, media::PIXEL_FORMAT_YV12A)); |
| 66 callback.Run(formats); | 62 return formats; |
| 67 } | 63 } |
| 68 void StartCapture(const media::VideoCaptureParams& params, | 64 void StartCapture(const media::VideoCaptureParams& params, |
| 69 const VideoCaptureDeliverFrameCB& frame_callback, | 65 const VideoCaptureDeliverFrameCB& frame_callback, |
| 70 const RunningCallback& running_callback) override { | 66 const RunningCallback& running_callback) override { |
| 71 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 67 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| 72 canvas_handler_->StartVideoCapture(params, frame_callback, | 68 canvas_handler_->StartVideoCapture(params, frame_callback, |
| 73 running_callback); | 69 running_callback); |
| 74 } | 70 } |
| 75 void RequestRefreshFrame() override { | 71 void RequestRefreshFrame() override { |
| 76 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 72 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 | 268 |
| 273 web_track->initialize(webkit_source); | 269 web_track->initialize(webkit_source); |
| 274 blink::WebMediaConstraints constraints; | 270 blink::WebMediaConstraints constraints; |
| 275 constraints.initialize(); | 271 constraints.initialize(); |
| 276 web_track->setTrackData(new MediaStreamVideoTrack( | 272 web_track->setTrackData(new MediaStreamVideoTrack( |
| 277 media_stream_source.release(), constraints, | 273 media_stream_source.release(), constraints, |
| 278 MediaStreamVideoSource::ConstraintsCallback(), true)); | 274 MediaStreamVideoSource::ConstraintsCallback(), true)); |
| 279 } | 275 } |
| 280 | 276 |
| 281 } // namespace content | 277 } // namespace content |
| OLD | NEW |