| 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
|
|
|