Index: content/browser/media/capture/content_video_capture_device_core.cc |
diff --git a/content/browser/media/capture/content_video_capture_device_core.cc b/content/browser/media/capture/content_video_capture_device_core.cc |
index e2a51c4594be3d97bc1e36bde2868998cd5f1742..b470bcdb18d0b1de3e42f66a2bdb1d5ef827027b 100644 |
--- a/content/browser/media/capture/content_video_capture_device_core.cc |
+++ b/content/browser/media/capture/content_video_capture_device_core.cc |
@@ -43,10 +43,11 @@ void DeleteCaptureMachineOnUIThread( |
ThreadSafeCaptureOracle::ThreadSafeCaptureOracle( |
scoped_ptr<media::VideoCaptureDevice::Client> client, |
- scoped_ptr<VideoCaptureOracle> oracle, |
const media::VideoCaptureParams& params) |
: client_(client.Pass()), |
- oracle_(oracle.Pass()), |
+ oracle_(base::TimeDelta::FromMicroseconds( |
+ static_cast<int64>(1000000.0 / params.requested_format.frame_rate + |
+ 0.5 /* to round to nearest int */))), |
params_(params), |
capture_size_updated_(false) { |
switch (params_.requested_format.pixel_format) { |
@@ -84,7 +85,7 @@ bool ThreadSafeCaptureOracle::ObserveEventAndDecideCapture( |
scoped_refptr<media::VideoCaptureDevice::Client::Buffer> output_buffer = |
client_->ReserveOutputBuffer(video_frame_format_, coded_size); |
const bool should_capture = |
- oracle_->ObserveEventAndDecideCapture(event, damage_rect, event_time); |
+ oracle_.ObserveEventAndDecideCapture(event, damage_rect, event_time); |
const bool content_is_dirty = |
(event == VideoCaptureOracle::kCompositorUpdate || |
event == VideoCaptureOracle::kSoftwarePaint); |
@@ -119,7 +120,7 @@ bool ThreadSafeCaptureOracle::ObserveEventAndDecideCapture( |
"trigger", event_name); |
return false; |
} |
- int frame_number = oracle_->RecordCapture(); |
+ int frame_number = oracle_.RecordCapture(); |
TRACE_EVENT_ASYNC_BEGIN2("mirroring", "Capture", output_buffer.get(), |
"frame_number", frame_number, |
"trigger", event_name); |
@@ -200,7 +201,7 @@ void ThreadSafeCaptureOracle::DidCaptureFrame( |
return; // Capture is stopped. |
if (success) { |
- if (oracle_->CompleteCapture(frame_number, ×tamp)) { |
+ if (oracle_.CompleteCapture(frame_number, ×tamp)) { |
media::VideoCaptureFormat format = params_.requested_format; |
// TODO(miu): Passing VideoCaptureFormat here introduces ambiguities. The |
// following is a hack where frame_size takes on a different meaning than |
@@ -255,14 +256,7 @@ void ContentVideoCaptureDeviceCore::AllocateAndStart( |
MakeEven(params.requested_format.frame_size.width()), |
MakeEven(params.requested_format.frame_size.height())); |
- base::TimeDelta capture_period = base::TimeDelta::FromMicroseconds( |
- 1000000.0 / params.requested_format.frame_rate + 0.5); |
- |
- scoped_ptr<VideoCaptureOracle> oracle( |
- new VideoCaptureOracle(capture_period, |
- kAcceleratedSubscriberIsSupported)); |
- oracle_proxy_ = |
- new ThreadSafeCaptureOracle(client.Pass(), oracle.Pass(), new_params); |
+ oracle_proxy_ = new ThreadSafeCaptureOracle(client.Pass(), new_params); |
// Starts the capture machine asynchronously. |
BrowserThread::PostTaskAndReplyWithResult( |