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

Side by Side Diff: content/renderer/media_capture_from_element/canvas_capture_handler.cc

Issue 2787773002: Add GetPreferredFormats method to media::VideoCapturerSource. (Closed)
Patch Set: rebase Created 3 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 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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698