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

Unified Diff: remoting/host/cast_video_capturer_adapter.cc

Issue 1472703006: Move and rename host/cast_video_capture_adapter to protocol/webrtc_video_capture_adapter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 | « remoting/host/cast_video_capturer_adapter.h ('k') | remoting/protocol/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/cast_video_capturer_adapter.cc
diff --git a/remoting/host/cast_video_capturer_adapter.cc b/remoting/host/cast_video_capturer_adapter.cc
deleted file mode 100644
index 2c29663005691fc11f383f7929db52e12973cbc6..0000000000000000000000000000000000000000
--- a/remoting/host/cast_video_capturer_adapter.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "remoting/host/cast_video_capturer_adapter.h"
-
-#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
-
-namespace remoting {
-
-// Number of frames to be captured per second.
-const int kFramesPerSec = 10;
-
-CastVideoCapturerAdapter::CastVideoCapturerAdapter(
- scoped_ptr<webrtc::DesktopCapturer> capturer)
- : desktop_capturer_(capturer.Pass()) {
- DCHECK(desktop_capturer_);
-
- thread_checker_.DetachFromThread();
-
- // Disable video adaptation since we don't intend to use it.
- set_enable_video_adapter(false);
-}
-
-CastVideoCapturerAdapter::~CastVideoCapturerAdapter() {
- DCHECK(!capture_timer_);
-}
-
-webrtc::SharedMemory* CastVideoCapturerAdapter::CreateSharedMemory(
- size_t size) {
- return nullptr;
-}
-
-void CastVideoCapturerAdapter::OnCaptureCompleted(webrtc::DesktopFrame* frame) {
- scoped_ptr<webrtc::DesktopFrame> owned_frame(frame);
-
- // Drop the owned_frame if there were no changes.
- if (!owned_frame || owned_frame->updated_region().is_empty()) {
- owned_frame.reset();
- return;
- }
-
- // Convert the webrtc::DesktopFrame to a cricket::CapturedFrame.
- cricket::CapturedFrame captured_frame;
- captured_frame.width = owned_frame->size().width();
- captured_frame.height = owned_frame->size().height();
- base::TimeTicks current_time = base::TimeTicks::Now();
- captured_frame.time_stamp =
- current_time.ToInternalValue() * base::Time::kNanosecondsPerMicrosecond;
- captured_frame.data = owned_frame->data();
-
- // The data_size attribute must be set. If multiple formats are supported,
- // this should be set appropriately for each one.
- captured_frame.data_size =
- (captured_frame.width * webrtc::DesktopFrame::kBytesPerPixel * 8 + 7) /
- 8 * captured_frame.height;
- captured_frame.fourcc = cricket::FOURCC_ARGB;
-
- SignalFrameCaptured(this, &captured_frame);
-}
-
-bool CastVideoCapturerAdapter::GetBestCaptureFormat(
- const cricket::VideoFormat& desired,
- cricket::VideoFormat* best_format) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- // For now, just used the desired width and height.
- best_format->width = desired.width;
- best_format->height = desired.height;
- best_format->fourcc = cricket::FOURCC_ARGB;
- best_format->interval = FPS_TO_INTERVAL(kFramesPerSec);
- return true;
-}
-
-cricket::CaptureState CastVideoCapturerAdapter::Start(
- const cricket::VideoFormat& capture_format) {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(!capture_timer_);
- DCHECK_EQ(capture_format.fourcc, (static_cast<uint32>(cricket::FOURCC_ARGB)));
-
- if (!desktop_capturer_) {
- VLOG(1) << "CastVideoCapturerAdapter failed to start.";
- return cricket::CS_FAILED;
- }
-
- // This is required to tell the cricket::VideoCapturer base class what the
- // capture format will be.
- SetCaptureFormat(&capture_format);
-
- desktop_capturer_->Start(this);
-
- capture_timer_.reset(new base::RepeatingTimer());
- capture_timer_->Start(FROM_HERE,
- base::TimeDelta::FromMicroseconds(
- GetCaptureFormat()->interval /
- (base::Time::kNanosecondsPerMicrosecond)),
- this,
- &CastVideoCapturerAdapter::CaptureNextFrame);
-
- return cricket::CS_RUNNING;
-}
-
-// Similar to the base class implementation with some important differences:
-// 1. Does not call either Stop() or Start(), as those would affect the state of
-// |desktop_capturer_|.
-// 2. Does not support unpausing after stopping the capturer. It is unclear
-// if that flow needs to be supported.
-bool CastVideoCapturerAdapter::Pause(bool pause) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- if (pause) {
- if (capture_state() == cricket::CS_PAUSED)
- return true;
-
- bool running = capture_state() == cricket::CS_STARTING ||
- capture_state() == cricket::CS_RUNNING;
-
- DCHECK_EQ(running, IsRunning());
-
- if (!running) {
- LOG(ERROR)
- << "Cannot pause CastVideoCapturerAdapter.";
- return false;
- }
-
- // Stop |capture_timer_| and set capture state to cricket::CS_PAUSED.
- capture_timer_->Stop();
- SetCaptureState(cricket::CS_PAUSED);
-
- VLOG(1) << "CastVideoCapturerAdapter paused.";
-
- return true;
- } else { // Unpausing.
- if (capture_state() != cricket::CS_PAUSED || !GetCaptureFormat() ||
- !capture_timer_) {
- LOG(ERROR) << "Cannot unpause CastVideoCapturerAdapter.";
- return false;
- }
-
- // Restart |capture_timer_| and set capture state to cricket::CS_RUNNING;
- capture_timer_->Start(FROM_HERE,
- base::TimeDelta::FromMicroseconds(
- GetCaptureFormat()->interval /
- (base::Time::kNanosecondsPerMicrosecond)),
- this,
- &CastVideoCapturerAdapter::CaptureNextFrame);
- SetCaptureState(cricket::CS_RUNNING);
-
- VLOG(1) << "CastVideoCapturerAdapter unpaused.";
- }
- return true;
-}
-
-void CastVideoCapturerAdapter::Stop() {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK_NE(capture_state(), cricket::CS_STOPPED);
-
- capture_timer_.reset();
-
- SetCaptureFormat(nullptr);
- SetCaptureState(cricket::CS_STOPPED);
-
- VLOG(1) << "CastVideoCapturerAdapter stopped.";
-}
-
-
-bool CastVideoCapturerAdapter::IsRunning() {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- return capture_timer_->IsRunning();
-}
-
-bool CastVideoCapturerAdapter::IsScreencast() const {
- return true;
-}
-
-bool CastVideoCapturerAdapter::GetPreferredFourccs(
- std::vector<uint32>* fourccs) {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (!fourccs)
- return false;
- fourccs->push_back(cricket::FOURCC_ARGB);
- return true;
-}
-
-void CastVideoCapturerAdapter::CaptureNextFrame() {
- // If we are paused, then don't capture.
- if (!IsRunning())
- return;
-
- desktop_capturer_->Capture(webrtc::DesktopRegion());
-}
-
-} // namespace remoting
-
« no previous file with comments | « remoting/host/cast_video_capturer_adapter.h ('k') | remoting/protocol/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698