| Index: media/capture/video/mac/video_capture_device_mac.h
|
| diff --git a/media/capture/video/mac/video_capture_device_mac.h b/media/capture/video/mac/video_capture_device_mac.h
|
| index 88b986b6fa0a5dcc66e848a8d0c97101d8a358d6..7eff128ab1e0b50ee05c893364027f5625fb78af 100644
|
| --- a/media/capture/video/mac/video_capture_device_mac.h
|
| +++ b/media/capture/video/mac/video_capture_device_mac.h
|
| @@ -62,10 +62,12 @@ class VideoCaptureDeviceMac : public VideoCaptureDevice {
|
| const VideoCaptureParams& params,
|
| std::unique_ptr<VideoCaptureDevice::Client> client) override;
|
| void StopAndDeAllocate() override;
|
| + void TakePhoto(TakePhotoCallback callback) override;
|
|
|
| bool Init(VideoCaptureDevice::Name::CaptureApiType capture_api_type);
|
|
|
| - // Called to deliver captured video frames.
|
| + // Called to deliver captured video frames. It's safe to call this method
|
| + // from any thread, including those controlled by AVFoundation.
|
| void ReceiveFrame(const uint8_t* video_frame,
|
| int video_frame_length,
|
| const VideoCaptureFormat& frame_format,
|
| @@ -73,6 +75,13 @@ class VideoCaptureDeviceMac : public VideoCaptureDevice {
|
| int aspect_denominator,
|
| base::TimeDelta timestamp);
|
|
|
| + // Callbacks with the result of a still image capture, or in case of error,
|
| + // respectively. It's safe to call these methods from any thread.
|
| + void OnPhotoTaken(const uint8_t* image_data,
|
| + size_t image_length,
|
| + const std::string& mime_type);
|
| + void OnPhotoError();
|
| +
|
| // Forwarder to VideoCaptureDevice::Client::OnError().
|
| void ReceiveError(const tracked_objects::Location& from_here,
|
| const std::string& reason);
|
| @@ -99,6 +108,9 @@ class VideoCaptureDeviceMac : public VideoCaptureDevice {
|
|
|
| base::scoped_nsobject<VideoCaptureDeviceAVFoundation> capture_device_;
|
|
|
| + // To hold on to the TakePhotoCallback while the picture is being taken.
|
| + std::unique_ptr<TakePhotoCallback> photo_callback_;
|
| +
|
| // Used with Bind and PostTask to ensure that methods aren't called after the
|
| // VideoCaptureDeviceMac is destroyed.
|
| // NOTE: Weak pointers must be invalidated before all other member variables.
|
|
|