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 |