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

Side by Side Diff: media/capture/content/thread_safe_capture_oracle.cc

Issue 2490153003: [Mojo Video Capture] Replace const scoped_refptr<T>& with scoped_refptr<T> and use std::move (Closed)
Patch Set: fix bots Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "media/capture/content/thread_safe_capture_oracle.h" 5 #include "media/capture/content/thread_safe_capture_oracle.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 const base::TimeTicks refresh_time = base::TimeTicks::Now(); 161 const base::TimeTicks refresh_time = base::TimeTicks::Now();
162 162
163 scoped_refptr<VideoFrame> frame; 163 scoped_refptr<VideoFrame> frame;
164 CaptureFrameCallback capture_callback; 164 CaptureFrameCallback capture_callback;
165 if (!ObserveEventAndDecideCapture(VideoCaptureOracle::kPassiveRefreshRequest, 165 if (!ObserveEventAndDecideCapture(VideoCaptureOracle::kPassiveRefreshRequest,
166 gfx::Rect(), refresh_time, &frame, 166 gfx::Rect(), refresh_time, &frame,
167 &capture_callback)) { 167 &capture_callback)) {
168 return false; 168 return false;
169 } 169 }
170 170
171 capture_callback.Run(frame, refresh_time, true); 171 capture_callback.Run(std::move(frame), refresh_time, true);
172 return true; 172 return true;
173 } 173 }
174 174
175 gfx::Size ThreadSafeCaptureOracle::GetCaptureSize() const { 175 gfx::Size ThreadSafeCaptureOracle::GetCaptureSize() const {
176 base::AutoLock guard(lock_); 176 base::AutoLock guard(lock_);
177 return oracle_.capture_size(); 177 return oracle_.capture_size();
178 } 178 }
179 179
180 void ThreadSafeCaptureOracle::UpdateCaptureSize(const gfx::Size& source_size) { 180 void ThreadSafeCaptureOracle::UpdateCaptureSize(const gfx::Size& source_size) {
181 base::AutoLock guard(lock_); 181 base::AutoLock guard(lock_);
(...skipping 12 matching lines...) Expand all
194 base::AutoLock guard(lock_); 194 base::AutoLock guard(lock_);
195 if (client_) 195 if (client_)
196 client_->OnError(from_here, reason); 196 client_->OnError(from_here, reason);
197 } 197 }
198 198
199 void ThreadSafeCaptureOracle::DidCaptureFrame( 199 void ThreadSafeCaptureOracle::DidCaptureFrame(
200 int frame_number, 200 int frame_number,
201 std::unique_ptr<VideoCaptureDevice::Client::Buffer> buffer, 201 std::unique_ptr<VideoCaptureDevice::Client::Buffer> buffer,
202 base::TimeTicks capture_begin_time, 202 base::TimeTicks capture_begin_time,
203 base::TimeDelta estimated_frame_duration, 203 base::TimeDelta estimated_frame_duration,
204 const scoped_refptr<VideoFrame>& frame, 204 scoped_refptr<VideoFrame> frame,
205 base::TimeTicks reference_time, 205 base::TimeTicks reference_time,
206 bool success) { 206 bool success) {
207 TRACE_EVENT_ASYNC_END2("gpu.capture", "Capture", buffer.get(), "success", 207 TRACE_EVENT_ASYNC_END2("gpu.capture", "Capture", buffer.get(), "success",
208 success, "timestamp", 208 success, "timestamp",
209 reference_time.ToInternalValue()); 209 reference_time.ToInternalValue());
210 210
211 base::AutoLock guard(lock_); 211 base::AutoLock guard(lock_);
212 212
213 if (oracle_.CompleteCapture(frame_number, success, &reference_time)) { 213 if (oracle_.CompleteCapture(frame_number, success, &reference_time)) {
214 TRACE_EVENT_INSTANT0("gpu.capture", "CaptureSucceeded", 214 TRACE_EVENT_INSTANT0("gpu.capture", "CaptureSucceeded",
(...skipping 10 matching lines...) Expand all
225 base::TimeTicks::Now()); 225 base::TimeTicks::Now());
226 frame->metadata()->SetTimeDelta(VideoFrameMetadata::FRAME_DURATION, 226 frame->metadata()->SetTimeDelta(VideoFrameMetadata::FRAME_DURATION,
227 estimated_frame_duration); 227 estimated_frame_duration);
228 frame->metadata()->SetTimeTicks(VideoFrameMetadata::REFERENCE_TIME, 228 frame->metadata()->SetTimeTicks(VideoFrameMetadata::REFERENCE_TIME,
229 reference_time); 229 reference_time);
230 230
231 frame->AddDestructionObserver( 231 frame->AddDestructionObserver(
232 base::Bind(&ThreadSafeCaptureOracle::DidConsumeFrame, this, 232 base::Bind(&ThreadSafeCaptureOracle::DidConsumeFrame, this,
233 frame_number, frame->metadata())); 233 frame_number, frame->metadata()));
234 234
235 client_->OnIncomingCapturedVideoFrame(std::move(buffer), frame); 235 client_->OnIncomingCapturedVideoFrame(std::move(buffer), std::move(frame));
236 } 236 }
237 } 237 }
238 238
239 void ThreadSafeCaptureOracle::DidConsumeFrame( 239 void ThreadSafeCaptureOracle::DidConsumeFrame(
240 int frame_number, 240 int frame_number,
241 const media::VideoFrameMetadata* metadata) { 241 const media::VideoFrameMetadata* metadata) {
242 // Note: This function may be called on any thread by the VideoFrame 242 // Note: This function may be called on any thread by the VideoFrame
243 // destructor. |metadata| is still valid for read-access at this point. 243 // destructor. |metadata| is still valid for read-access at this point.
244 double utilization = -1.0; 244 double utilization = -1.0;
245 if (metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION, 245 if (metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION,
246 &utilization)) { 246 &utilization)) {
247 base::AutoLock guard(lock_); 247 base::AutoLock guard(lock_);
248 oracle_.RecordConsumerFeedback(frame_number, utilization); 248 oracle_.RecordConsumerFeedback(frame_number, utilization);
249 } 249 }
250 } 250 }
251 251
252 } // namespace media 252 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698