Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
NGIAgoraCameraCapturer.h
1//
2// Agora SDK
3//
4// Copyright (c) 2019 Agora.io. All rights reserved.
5//
6
7#pragma once // NOLINT(build/header_guard)
8
9#include "AgoraBase.h"
10#include "AgoraRefPtr.h"
11#include <api/cpp/aosl_ares_class.h>
12
13namespace agora {
14namespace rtc {
15class IVideoSinkBase;
21
22 public:
40
54
55 // Interface for receiving information about available camera devices.
60 public:
61 virtual ~IDeviceInfo() {}
62
66 virtual void release() = 0;
67
72 virtual uint32_t NumberOfDevices() = 0;
73
88 virtual int32_t GetDeviceName(uint32_t deviceNumber, char* deviceNameUTF8,
89 uint32_t deviceNameLength, char* deviceUniqueIdUTF8,
90 uint32_t deviceUniqueIdLength, char* productUniqueIdUTF8 = 0,
91 uint32_t productUniqueIdLength = 0,
92 char* deviceTypeUTF8 = 0, uint32_t deviceTypeLength = 0) = 0;
93
100 virtual int32_t NumberOfCapabilities(const char* deviceUniqueIdUTF8) = 0;
101
110 virtual int32_t GetCapability(const char* deviceUniqueIdUTF8,
111 const uint32_t deviceCapabilityNumber,
113 };
114
115 public:
116#if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IPHONE) || defined (__OHOS__)
128 virtual int setCameraSource(CAMERA_SOURCE source, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
144 virtual int switchCamera(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
155 virtual bool isZoomSupported() = 0;
168 virtual int32_t setCameraZoom(float zoomValue, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
178 virtual float getCameraMaxZoom() = 0;
189 virtual bool isFocusSupported() = 0;
199 virtual int32_t setCameraFocus(float x, float y, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
210 virtual bool isAutoFaceFocusSupported() = 0;
221 virtual int32_t setCameraAutoFaceFocus(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
232 virtual int32_t enableFaceDetection(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
233
241 virtual bool isCameraFaceDetectSupported() = 0;
242
263 virtual bool isCameraTorchSupported() = 0;
264
281 virtual int setCameraTorchOn(bool on, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
282
295
311 virtual int setCameraExposurePosition(float positionXinView, float positionYinView, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
312
325 virtual bool isCameraExposureSupported() = 0;
326
337 virtual int setCameraExposureFactor(float value, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
338
339#if (defined(__APPLE__) && TARGET_OS_IOS)
351 virtual bool enableMultiCamera(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
360
361
375 virtual int setCameraAutoExposureFaceModeEnabled(bool enabled, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
376
383#endif
384
385#elif defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__) && !defined (__OHOS__)) || \
386 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
387
409 virtual int initWithDeviceId(const char* deviceId) = 0;
421 virtual int initWithDeviceName(const char* deviceName) = 0;
422#endif
423
424#if defined(__APPLE__)
432 virtual bool isCenterStageSupported() = 0;
433
442 virtual int enableCenterStage(bool enabled) = 0;
443#endif
444
449 virtual int setDeviceOrientation(VIDEO_ORIENTATION orientation, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
450
458 virtual int setCaptureFormat(const VideoFormat& capture_format, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
470 virtual int registerCameraObserver(ICameraCaptureObserver* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
477
478 protected:
480};
481
485 public:
497 virtual void onCameraFocusAreaChanged(int imageWidth, int imageHeight, int x, int y) {
498 (void) imageWidth;
499 (void) imageHeight;
500 (void) x;
501 (void) y;
502
503 }
504
533 int imageWidth, int imageHeight, const Rectangle* vecRectangle, const int* vecDistance, int numFaces) {
534 (void) imageWidth;
535 (void) imageHeight;
536 (void) vecRectangle;
537 (void) vecDistance;
538 (void) numFaces;
539 }
540
552 virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
553 (void)x;
554 (void)y;
555 (void)width;
556 (void)height;
557 }
558
560 (void) state;
561 (void) source;
562 }
563
564 protected:
566};
567
568} // namespace rtc
569} // namespace agora
Definition AgoraRefPtr.h:31
Definition NGIAgoraCameraCapturer.h:484
virtual void onCameraFocusAreaChanged(int imageWidth, int imageHeight, int x, int y)
Definition NGIAgoraCameraCapturer.h:497
virtual void onCameraStateChanged(ICameraCapturer::CAMERA_STATE state, ICameraCapturer::CAMERA_SOURCE source)
Definition NGIAgoraCameraCapturer.h:559
virtual void onFacePositionChanged(int imageWidth, int imageHeight, const Rectangle *vecRectangle, const int *vecDistance, int numFaces)
Definition NGIAgoraCameraCapturer.h:532
virtual ~ICameraCaptureObserver()
Definition NGIAgoraCameraCapturer.h:565
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Definition NGIAgoraCameraCapturer.h:552
Definition NGIAgoraCameraCapturer.h:59
virtual int32_t NumberOfCapabilities(const char *deviceUniqueIdUTF8)=0
virtual ~IDeviceInfo()
Definition NGIAgoraCameraCapturer.h:61
virtual int32_t GetCapability(const char *deviceUniqueIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat &capability)=0
virtual int32_t GetDeviceName(uint32_t deviceNumber, char *deviceNameUTF8, uint32_t deviceNameLength, char *deviceUniqueIdUTF8, uint32_t deviceUniqueIdLength, char *productUniqueIdUTF8=0, uint32_t productUniqueIdLength=0, char *deviceTypeUTF8=0, uint32_t deviceTypeLength=0)=0
Definition NGIAgoraCameraCapturer.h:20
virtual bool isFocusSupported()=0
virtual int setDeviceOrientation(VIDEO_ORIENTATION orientation, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool enableMultiCamera(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setCameraTorchOn(bool on, aosl_ref_t ares=AOSL_REF_INVALID)=0
~ICameraCapturer()
Definition NGIAgoraCameraCapturer.h:479
virtual int unregisterCameraObserver(ICameraCaptureObserver *observer)=0
virtual float getCameraMaxZoom()=0
virtual CAMERA_SOURCE getCameraSource()=0
virtual int setCameraSource(CAMERA_SOURCE source, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int32_t enableFaceDetection(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int registerCameraObserver(ICameraCaptureObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool isCenterStageSupported()=0
virtual int setCameraExposureFactor(float value, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int switchCamera(aosl_ref_t ares=AOSL_REF_INVALID)=0
CAMERA_STATE
Definition NGIAgoraCameraCapturer.h:44
@ CAMERA_STOPPED
Definition NGIAgoraCameraCapturer.h:52
@ CAMERA_STARTED
Definition NGIAgoraCameraCapturer.h:48
virtual int initWithDeviceName(const char *deviceName)=0
virtual bool isZoomSupported()=0
virtual IDeviceInfo * createDeviceInfo()=0
virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode)=0
virtual int32_t setCameraAutoFaceFocus(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setCameraAutoExposureFaceModeEnabled(bool enabled, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setCameraExposurePosition(float positionXinView, float positionYinView, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int initWithDeviceId(const char *deviceId)=0
virtual int32_t setCameraFocus(float x, float y, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool isAutoFaceFocusSupported()=0
CAMERA_SOURCE
Definition NGIAgoraCameraCapturer.h:26
@ CAMERA_BACK
Definition NGIAgoraCameraCapturer.h:30
@ CAMERA_EXTRA
Definition NGIAgoraCameraCapturer.h:38
@ CAMERA_FRONT
Definition NGIAgoraCameraCapturer.h:34
virtual bool isCameraFaceDetectSupported()=0
virtual bool isCameraAutoExposureFaceModeSupported()=0
virtual bool isCameraExposureSupported()=0
virtual int setCaptureFormat(const VideoFormat &capture_format, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int32_t setCameraZoom(float zoomValue, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool isCameraTorchSupported()=0
virtual bool isCameraExposurePositionSupported()=0
virtual VideoFormat getCaptureFormat()=0
virtual int enableCenterStage(bool enabled)=0
Definition NGIAgoraMediaNode.h:167
Definition channel_capability_i.h:14
Definition AgoraExtensions.h:5
CAMERA_STABILIZATION_MODE
Definition AgoraBase.h:3242
VIDEO_ORIENTATION
Definition AgoraBase.h:987
Definition AgoraAtomicOps.h:21
Definition AgoraBase.h:2281
Definition AgoraBase.h:3087