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

Unified Diff: media/capture/content/thread_safe_capture_oracle.cc

Issue 2673373003: getUserMeida: report device starting states (Closed)
Patch Set: address comments on PS#4 and revise unittests Created 3 years, 10 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
Index: media/capture/content/thread_safe_capture_oracle.cc
diff --git a/media/capture/content/thread_safe_capture_oracle.cc b/media/capture/content/thread_safe_capture_oracle.cc
index 7e368f597451e0e190f53ec139a79d4a41ba58f7..909b5b11bd4365a5e277f423a04b67ac6a9d8130 100644
--- a/media/capture/content/thread_safe_capture_oracle.cc
+++ b/media/capture/content/thread_safe_capture_oracle.cc
@@ -45,7 +45,8 @@ ThreadSafeCaptureOracle::ThreadSafeCaptureOracle(
params.requested_format.frame_size,
params.resolution_change_policy,
enable_auto_throttling),
- params_(params) {}
+ params_(params),
+ capture_(false) {}
ThreadSafeCaptureOracle::~ThreadSafeCaptureOracle() {
}
@@ -187,6 +188,7 @@ void ThreadSafeCaptureOracle::UpdateCaptureSize(const gfx::Size& source_size) {
void ThreadSafeCaptureOracle::Stop() {
base::AutoLock guard(lock_);
+ capture_ = false;
client_.reset();
}
@@ -198,6 +200,13 @@ void ThreadSafeCaptureOracle::ReportError(
client_->OnError(from_here, reason);
}
+void ThreadSafeCaptureOracle::ReportStarted() {
+ base::AutoLock guard(lock_);
+ if (client_)
+ client_->OnStarted();
+ capture_ = true;
+}
+
void ThreadSafeCaptureOracle::DidCaptureFrame(
int frame_number,
VideoCaptureDevice::Client::Buffer buffer,
@@ -218,7 +227,7 @@ void ThreadSafeCaptureOracle::DidCaptureFrame(
TRACE_EVENT_INSTANT0("gpu.capture", "CaptureSucceeded",
TRACE_EVENT_SCOPE_THREAD);
- if (!client_)
+ if (!client_ || !capture_)
miu 2017/02/18 01:18:45 Dropping frames at this stage could break things (
braveyao 2017/02/22 18:06:44 Acknowledged.
return; // Capture is stopped.
frame->metadata()->SetDouble(VideoFrameMetadata::FRAME_RATE,

Powered by Google App Engine
This is Rietveld 408576698