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

Unified Diff: content/renderer/media/canvas_capture_handler.cc

Issue 2339193002: Wip - cl for implemening VideoTrackSource::ApplyConstraints(constraints, VideoTrack) and adopt safe…
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/media/canvas_capture_handler.h ('k') | content/renderer/media/media_stream_audio_source.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/canvas_capture_handler.cc
diff --git a/content/renderer/media/canvas_capture_handler.cc b/content/renderer/media/canvas_capture_handler.cc
index e289fd46dcec3610394a2e3f6dc2b627d18eb257..acdddd9e88ae3161d99c953806dea1397eec7ddf 100644
--- a/content/renderer/media/canvas_capture_handler.cc
+++ b/content/renderer/media/canvas_capture_handler.cc
@@ -121,17 +121,10 @@ class CanvasCaptureHandler::CanvasCaptureHandlerDelegate {
};
CanvasCaptureHandler::CanvasCaptureHandler(
- const blink::WebSize& size,
- double frame_rate,
- const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
- blink::WebMediaStreamTrack* track)
+ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner)
: ask_for_new_frame_(false),
- size_(size),
io_task_runner_(io_task_runner),
weak_ptr_factory_(this) {
- std::unique_ptr<media::VideoCapturerSource> video_source(
- new VideoCapturerSource(weak_ptr_factory_.GetWeakPtr(), frame_rate));
- AddVideoCapturerSourceToVideoTrack(std::move(video_source), track);
}
CanvasCaptureHandler::~CanvasCaptureHandler() {
@@ -142,15 +135,31 @@ CanvasCaptureHandler::~CanvasCaptureHandler() {
// static
CanvasCaptureHandler* CanvasCaptureHandler::CreateCanvasCaptureHandler(
- const blink::WebSize& size,
- double frame_rate,
- const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
- blink::WebMediaStreamTrack* track) {
+ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
// Save histogram data so we can see how much CanvasCapture is used.
// The histogram counts the number of calls to the JS API.
UpdateWebRTCMethodCount(WEBKIT_CANVAS_CAPTURE_STREAM);
- return new CanvasCaptureHandler(size, frame_rate, io_task_runner, track);
+ return new CanvasCaptureHandler(io_task_runner);
+}
+
+blink::WebMediaStreamTrack CanvasCaptureHandler::createTrack(
+ const blink::WebSize& size, double frame_rate) {
+ DCHECK(main_render_thread_checker_.CalledOnValidThread());
+ size_ = size;
+ std::unique_ptr<media::VideoCapturerSource> video_source(
+ new VideoCapturerSource(weak_ptr_factory_.GetWeakPtr(), frame_rate));
+ std::string str_track_id;
+ base::Base64Encode(base::RandBytesAsString(64), &str_track_id);
+ const blink::WebString track_id = base::UTF8ToUTF16(str_track_id);
+ blink::WebMediaStreamSource webkit_source;
+ std::unique_ptr<MediaStreamVideoSource> media_stream_source(
+ new MediaStreamVideoCapturerSource(
+ MediaStreamSource::SourceStoppedCallback(), std::move(video_source)));
+ webkit_source.initialize(track_id, blink::WebMediaStreamSource::TypeVideo,
+ track_id, false);
+ webkit_source.setExtraData(media_stream_source.get());
+ return MediaStreamVideoTrack::CreateVideoTrack(media_stream_source.release());
}
void CanvasCaptureHandler::sendNewFrame(const SkImage* image) {
@@ -251,27 +260,4 @@ void CanvasCaptureHandler::CreateNewFrame(const SkImage* image) {
SendNewFrameOnIOThread,
delegate_->GetWeakPtrForIOThread(), video_frame, timestamp));
}
-
-void CanvasCaptureHandler::AddVideoCapturerSourceToVideoTrack(
- std::unique_ptr<media::VideoCapturerSource> source,
- blink::WebMediaStreamTrack* web_track) {
- std::string str_track_id;
- base::Base64Encode(base::RandBytesAsString(64), &str_track_id);
- const blink::WebString track_id = base::UTF8ToUTF16(str_track_id);
- blink::WebMediaStreamSource webkit_source;
- std::unique_ptr<MediaStreamVideoSource> media_stream_source(
- new MediaStreamVideoCapturerSource(
- MediaStreamSource::SourceStoppedCallback(), std::move(source)));
- webkit_source.initialize(track_id, blink::WebMediaStreamSource::TypeVideo,
- track_id, false);
- webkit_source.setExtraData(media_stream_source.get());
-
- web_track->initialize(webkit_source);
- blink::WebMediaConstraints constraints;
- constraints.initialize();
- web_track->setTrackData(new MediaStreamVideoTrack(
- media_stream_source.release(), constraints,
- MediaStreamVideoSource::ConstraintsCallback(), true));
-}
-
} // namespace content
« no previous file with comments | « content/renderer/media/canvas_capture_handler.h ('k') | content/renderer/media/media_stream_audio_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698