| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Implementation notes: This needs to work on a variety of hardware | 5 // Implementation notes: This needs to work on a variety of hardware |
| 6 // configurations where the speed of the CPU and GPU greatly affect overall | 6 // configurations where the speed of the CPU and GPU greatly affect overall |
| 7 // performance. Spanning several threads, the process of capturing has been | 7 // performance. Spanning several threads, the process of capturing has been |
| 8 // split up into four conceptual stages: | 8 // split up into four conceptual stages: |
| 9 // | 9 // |
| 10 // 1. Reserve Buffer: Before a frame can be captured, a slot in the client's | 10 // 1. Reserve Buffer: Before a frame can be captured, a slot in the client's |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 // on success. | 367 // on success. |
| 368 if (success) { | 368 if (success) { |
| 369 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 369 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 370 // TODO(isheriff): Unclear if taking a snapshot of cursor here affects user | 370 // TODO(isheriff): Unclear if taking a snapshot of cursor here affects user |
| 371 // experience in any particular scenarios. Doing it prior to capture may | 371 // experience in any particular scenarios. Doing it prior to capture may |
| 372 // require evaluating region_in_frame in this file. | 372 // require evaluating region_in_frame in this file. |
| 373 if (frame_subscriber_ && frame_subscriber_->cursor_renderer_) { | 373 if (frame_subscriber_ && frame_subscriber_->cursor_renderer_) { |
| 374 CursorRenderer* cursor_renderer = | 374 CursorRenderer* cursor_renderer = |
| 375 frame_subscriber_->cursor_renderer_.get(); | 375 frame_subscriber_->cursor_renderer_.get(); |
| 376 if (cursor_renderer->SnapshotCursorState(region_in_frame)) | 376 if (cursor_renderer->SnapshotCursorState(region_in_frame)) |
| 377 cursor_renderer->RenderOnVideoFrame(frame); | 377 cursor_renderer->RenderOnVideoFrame(frame.get()); |
| 378 frame->metadata()->SetBoolean( | 378 frame->metadata()->SetBoolean( |
| 379 media::VideoFrameMetadata::INTERACTIVE_CONTENT, | 379 media::VideoFrameMetadata::INTERACTIVE_CONTENT, |
| 380 frame_subscriber_->IsUserInteractingWithContent()); | 380 frame_subscriber_->IsUserInteractingWithContent()); |
| 381 } | 381 } |
| 382 } | 382 } |
| 383 capture_frame_cb.Run(std::move(frame), timestamp, success); | 383 capture_frame_cb.Run(std::move(frame), timestamp, success); |
| 384 } | 384 } |
| 385 | 385 |
| 386 bool FrameSubscriber::IsUserInteractingWithContent() { | 386 bool FrameSubscriber::IsUserInteractingWithContent() { |
| 387 bool interactive_mode = false; | 387 bool interactive_mode = false; |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 void WebContentsVideoCaptureDevice::StopAndDeAllocate() { | 956 void WebContentsVideoCaptureDevice::StopAndDeAllocate() { |
| 957 core_->StopAndDeAllocate(); | 957 core_->StopAndDeAllocate(); |
| 958 } | 958 } |
| 959 | 959 |
| 960 void WebContentsVideoCaptureDevice::OnUtilizationReport(int frame_feedback_id, | 960 void WebContentsVideoCaptureDevice::OnUtilizationReport(int frame_feedback_id, |
| 961 double utilization) { | 961 double utilization) { |
| 962 core_->OnConsumerReportingUtilization(frame_feedback_id, utilization); | 962 core_->OnConsumerReportingUtilization(frame_feedback_id, utilization); |
| 963 } | 963 } |
| 964 | 964 |
| 965 } // namespace content | 965 } // namespace content |
| OLD | NEW |