| OLD | NEW |
| 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/capture/video/mac/video_capture_device_mac.h" | 5 #include "media/capture/video/mac/video_capture_device_mac.h" |
| 6 | 6 |
| 7 #include <IOKit/IOCFPlugIn.h> | 7 #include <IOKit/IOCFPlugIn.h> |
| 8 #include <IOKit/usb/IOUSBLib.h> | 8 #include <IOKit/usb/IOUSBLib.h> |
| 9 #include <IOKit/usb/USBSpec.h> | 9 #include <IOKit/usb/USBSpec.h> |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 DCHECK(task_runner_->BelongsToCurrentThread()); | 377 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 378 DCHECK(state_ == kCapturing) << state_; | 378 DCHECK(state_ == kCapturing) << state_; |
| 379 | 379 |
| 380 if (photo_callback_) // Only one picture can be in flight at a time. | 380 if (photo_callback_) // Only one picture can be in flight at a time. |
| 381 return; | 381 return; |
| 382 | 382 |
| 383 photo_callback_.reset(new TakePhotoCallback(std::move(callback))); | 383 photo_callback_.reset(new TakePhotoCallback(std::move(callback))); |
| 384 [capture_device_ takePhoto]; | 384 [capture_device_ takePhoto]; |
| 385 } | 385 } |
| 386 | 386 |
| 387 void VideoCaptureDeviceMac::GetPhotoCapabilities( |
| 388 GetPhotoCapabilitiesCallback callback) { |
| 389 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 390 |
| 391 auto photo_capabilities = mojom::PhotoCapabilities::New(); |
| 392 |
| 393 photo_capabilities->exposure_compensation = mojom::Range::New(); |
| 394 photo_capabilities->color_temperature = mojom::Range::New(); |
| 395 photo_capabilities->iso = mojom::Range::New(); |
| 396 |
| 397 photo_capabilities->brightness = mojom::Range::New(); |
| 398 photo_capabilities->contrast = mojom::Range::New(); |
| 399 photo_capabilities->saturation = mojom::Range::New(); |
| 400 photo_capabilities->sharpness = mojom::Range::New(); |
| 401 |
| 402 photo_capabilities->zoom = mojom::Range::New(); |
| 403 |
| 404 photo_capabilities->red_eye_reduction = mojom::RedEyeReduction::NEVER; |
| 405 photo_capabilities->height = mojom::Range::New( |
| 406 capture_format_.frame_size.height(), capture_format_.frame_size.height(), |
| 407 capture_format_.frame_size.height(), 0 /* step */); |
| 408 photo_capabilities->width = mojom::Range::New( |
| 409 capture_format_.frame_size.width(), capture_format_.frame_size.width(), |
| 410 capture_format_.frame_size.width(), 0 /* step */); |
| 411 photo_capabilities->torch = false; |
| 412 |
| 413 callback.Run(std::move(photo_capabilities)); |
| 414 } |
| 415 |
| 387 bool VideoCaptureDeviceMac::Init(VideoCaptureApi capture_api_type) { | 416 bool VideoCaptureDeviceMac::Init(VideoCaptureApi capture_api_type) { |
| 388 DCHECK(task_runner_->BelongsToCurrentThread()); | 417 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 389 DCHECK_EQ(state_, kNotInitialized); | 418 DCHECK_EQ(state_, kNotInitialized); |
| 390 | 419 |
| 391 if (capture_api_type != VideoCaptureApi::MACOSX_AVFOUNDATION) | 420 if (capture_api_type != VideoCaptureApi::MACOSX_AVFOUNDATION) |
| 392 return false; | 421 return false; |
| 393 | 422 |
| 394 capture_device_.reset( | 423 capture_device_.reset( |
| 395 [[VideoCaptureDeviceAVFoundation alloc] initWithFrameReceiver:this]); | 424 [[VideoCaptureDeviceAVFoundation alloc] initWithFrameReceiver:this]); |
| 396 | 425 |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 if (![capture_device_ setCaptureHeight:capture_format_.frame_size.height() | 518 if (![capture_device_ setCaptureHeight:capture_format_.frame_size.height() |
| 490 width:capture_format_.frame_size.width() | 519 width:capture_format_.frame_size.width() |
| 491 frameRate:capture_format_.frame_rate]) { | 520 frameRate:capture_format_.frame_rate]) { |
| 492 ReceiveError(FROM_HERE, "Could not configure capture device."); | 521 ReceiveError(FROM_HERE, "Could not configure capture device."); |
| 493 return false; | 522 return false; |
| 494 } | 523 } |
| 495 return true; | 524 return true; |
| 496 } | 525 } |
| 497 | 526 |
| 498 } // namespace media | 527 } // namespace media |
| OLD | NEW |