summaryrefslogtreecommitdiff
path: root/chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h')
-rw-r--r--chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h b/chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h
index f121dd8fe2e..63ccc6ddb1d 100644
--- a/chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h
+++ b/chromium/media/capture/video/mac/video_capture_device_avfoundation_protocol_mac.h
@@ -8,11 +8,14 @@
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
+#include <vector>
+
#import "base/mac/scoped_nsobject.h"
#include "base/synchronization/lock.h"
#include "base/threading/thread_checker.h"
#include "media/capture/video/video_capture_device.h"
#include "media/capture/video_capture_types.h"
+#include "ui/gfx/geometry/size.h"
namespace media {
class VideoCaptureDeviceMac;
@@ -35,9 +38,8 @@ class CAPTURE_EXPORT VideoCaptureDeviceAVFoundationFrameReceiver {
// function may be called from any thread, including those controlled by
// AVFoundation.
virtual void ReceiveExternalGpuMemoryBufferFrame(
- gfx::GpuMemoryBufferHandle handle,
- const VideoCaptureFormat& frame_format,
- const gfx::ColorSpace color_space,
+ CapturedExternalVideoBuffer frame,
+ std::vector<CapturedExternalVideoBuffer> scaled_frames,
base::TimeDelta timestamp) = 0;
// Callbacks with the result of a still image capture, or in case of error,
@@ -94,6 +96,13 @@ class CAPTURE_EXPORT VideoCaptureDeviceAVFoundationFrameReceiver {
width:(int)width
frameRate:(float)frameRate;
+// If an efficient path is available, the capturer will perform scaling and
+// deliver scaled frames to the |frameReceiver| as specified by |resolutions|.
+// The scaled frames are delivered in addition to the original captured frame.
+// Resolutions that match the captured frame or that would result in upscaling
+// are ignored.
+- (void)setScaledResolutions:(std::vector<gfx::Size>)resolutions;
+
// Starts video capturing and registers notification listeners. Must be
// called after setCaptureDevice:, and, eventually, also after
// setCaptureHeight:width:frameRate:.