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

Side by Side Diff: media/video/capture/mac/video_capture_device_mac.mm

Issue 83793004: Implement IPCs and VideoCapture::Client interfaces for texture capture (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: e296ac98 Win32 bits. Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "media/video/capture/mac/video_capture_device_mac.h" 5 #include "media/video/capture/mac/video_capture_device_mac.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 new_height = (new_height * aspect_denominator) / aspect_numerator; 293 new_height = (new_height * aspect_denominator) / aspect_numerator;
294 } 294 }
295 capture_format_.frame_size.SetSize(new_width, new_height); 295 capture_format_.frame_size.SetSize(new_width, new_height);
296 tried_to_square_pixels_ = true; 296 tried_to_square_pixels_ = true;
297 } 297 }
298 298
299 if (capture_format_.frame_size == frame_format.frame_size) { 299 if (capture_format_.frame_size == frame_format.frame_size) {
300 sent_frame_info_ = true; 300 sent_frame_info_ = true;
301 } else { 301 } else {
302 UpdateCaptureResolution(); 302 UpdateCaptureResolution();
303 // OnFrameInfo has not yet been called. OnIncomingCapturedFrame must 303 // OnFrameInfo has not yet been called. OnIncomingCapturedData must
304 // not be called until after OnFrameInfo, so we return early. 304 // not be called until after OnFrameInfo, so we return early.
305 return; 305 return;
306 } 306 }
307 } 307 }
308 308
309 DCHECK_EQ(capture_format_.frame_size.width(), 309 DCHECK_EQ(capture_format_.frame_size.width(),
310 frame_format.frame_size.width()); 310 frame_format.frame_size.width());
311 DCHECK_EQ(capture_format_.frame_size.height(), 311 DCHECK_EQ(capture_format_.frame_size.height(),
312 frame_format.frame_size.height()); 312 frame_format.frame_size.height());
313 313
314 client_->OnIncomingCapturedFrame(video_frame, 314 client_->OnIncomingCapturedData(video_frame,
315 video_frame_length, 315 video_frame_length,
316 base::TimeTicks::Now(), 316 capture_format_,
317 0, 317 0,
318 capture_format_); 318 base::TimeTicks::Now());
319 } 319 }
320 320
321 void VideoCaptureDeviceMac::ReceiveError(const std::string& reason) { 321 void VideoCaptureDeviceMac::ReceiveError(const std::string& reason) {
322 task_runner_->PostTask(FROM_HERE, 322 task_runner_->PostTask(FROM_HERE,
323 base::Bind(&VideoCaptureDeviceMac::SetErrorState, weak_this_, 323 base::Bind(&VideoCaptureDeviceMac::SetErrorState, weak_this_,
324 reason)); 324 reason));
325 } 325 }
326 326
327 void VideoCaptureDeviceMac::SetErrorState(const std::string& reason) { 327 void VideoCaptureDeviceMac::SetErrorState(const std::string& reason) {
328 DCHECK(task_runner_->BelongsToCurrentThread()); 328 DCHECK(task_runner_->BelongsToCurrentThread());
329 DLOG(ERROR) << reason; 329 DLOG(ERROR) << reason;
330 state_ = kError; 330 state_ = kError;
331 client_->OnError(reason); 331 client_->OnError(reason);
332 } 332 }
333 333
334 bool VideoCaptureDeviceMac::UpdateCaptureResolution() { 334 bool VideoCaptureDeviceMac::UpdateCaptureResolution() {
335 if (![capture_device_ setCaptureHeight:capture_format_.frame_size.height() 335 if (![capture_device_ setCaptureHeight:capture_format_.frame_size.height()
336 width:capture_format_.frame_size.width() 336 width:capture_format_.frame_size.width()
337 frameRate:capture_format_.frame_rate]) { 337 frameRate:capture_format_.frame_rate]) {
338 ReceiveError("Could not configure capture device."); 338 ReceiveError("Could not configure capture device.");
339 return false; 339 return false;
340 } 340 }
341 return true; 341 return true;
342 } 342 }
343 343
344 } // namespace media 344 } // namespace media
OLDNEW
« no previous file with comments | « media/video/capture/linux/video_capture_device_linux.cc ('k') | media/video/capture/mac/video_capture_device_qtkit_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698