Agora Java API Reference for Android
|
6 #pragma once // NOLINT(build/header_guard)
13 #ifndef OPTIONAL_ENUM_SIZE_T
14 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
15 #define OPTIONAL_ENUM_SIZE_T enum : size_t
17 #define OPTIONAL_ENUM_SIZE_T enum
21 #if !defined(__APPLE__)
28 typedef unsigned int uid_t;
29 typedef unsigned int track_id_t;
30 typedef unsigned int conn_id_t;
31 typedef unsigned int video_track_id_t;
33 static const unsigned int INVALID_TRACK_ID = 0xffffffff;
34 static const unsigned int DEFAULT_CONNECTION_ID = 0;
35 static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)();
37 struct EncodedVideoFrameInfo;
68 enum VIDEO_SOURCE_TYPE {
71 VIDEO_SOURCE_CAMERA_PRIMARY = 0,
72 VIDEO_SOURCE_CAMERA = VIDEO_SOURCE_CAMERA_PRIMARY,
75 VIDEO_SOURCE_CAMERA_SECONDARY = 1,
78 VIDEO_SOURCE_SCREEN_PRIMARY = 2,
79 VIDEO_SOURCE_SCREEN = VIDEO_SOURCE_SCREEN_PRIMARY,
82 VIDEO_SOURCE_SCREEN_SECONDARY = 3,
85 VIDEO_SOURCE_CUSTOM = 4,
88 VIDEO_SOURCE_MEDIA_PLAYER = 5,
91 VIDEO_SOURCE_RTC_IMAGE_PNG = 6,
94 VIDEO_SOURCE_RTC_IMAGE_JPEG = 7,
97 VIDEO_SOURCE_RTC_IMAGE_GIF = 8,
100 VIDEO_SOURCE_REMOTE = 9,
103 VIDEO_SOURCE_TRANSCODED = 10,
107 VIDEO_SOURCE_CAMERA_THIRD = 11,
110 VIDEO_SOURCE_CAMERA_FOURTH = 12,
113 VIDEO_SOURCE_SCREEN_THIRD = 13,
116 VIDEO_SOURCE_SCREEN_FOURTH = 14,
119 VIDEO_SOURCE_SPEECH_DRIVEN = 15,
121 VIDEO_SOURCE_UNKNOWN = 100
144 ROUTE_HEADSETNOMIC = 2,
148 ROUTE_SPEAKERPHONE = 3,
152 ROUTE_LOUDSPEAKER = 4,
156 ROUTE_BLUETOOTH_DEVICE_HFP = 5,
168 ROUTE_DISPLAYPORT = 8,
176 ROUTE_BLUETOOTH_DEVICE_A2DP = 10,
182 enum BYTES_PER_SAMPLE {
186 TWO_BYTES_PER_SAMPLE = 2,
192 size_t frames_per_buffer;
197 frames_per_buffer(0) {}
203 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
207 RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
212 RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
221 enum MEDIA_SOURCE_TYPE {
225 AUDIO_PLAYOUT_SOURCE = 0,
229 AUDIO_RECORDING_SOURCE = 1,
233 PRIMARY_CAMERA_SOURCE = 2,
237 SECONDARY_CAMERA_SOURCE = 3,
241 PRIMARY_SCREEN_SOURCE = 4,
245 SECONDARY_SCREEN_SOURCE = 5,
249 CUSTOM_VIDEO_SOURCE = 6,
253 MEDIA_PLAYER_SOURCE = 7,
257 RTC_IMAGE_PNG_SOURCE = 8,
261 RTC_IMAGE_JPEG_SOURCE = 9,
265 RTC_IMAGE_GIF_SOURCE = 10,
269 REMOTE_VIDEO_SOURCE = 11,
273 TRANSCODED_VIDEO_SOURCE = 12,
277 SPEECH_DRIVEN_VIDEO_SOURCE = 13,
281 UNKNOWN_MEDIA_SOURCE = 100
285 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
286 enum CONTENT_INSPECT_RESULT {
287 CONTENT_INSPECT_NEUTRAL = 1,
288 CONTENT_INSPECT_SEXY = 2,
289 CONTENT_INSPECT_PORN = 3,
292 enum CONTENT_INSPECT_TYPE {
296 CONTENT_INSPECT_INVALID = 0,
301 CONTENT_INSPECT_MODERATION __deprecated = 1,
305 CONTENT_INSPECT_SUPERVISION = 2,
309 CONTENT_INSPECT_IMAGE_MODERATION = 3
322 type = CONTENT_INSPECT_INVALID;
329 const char* extraInfo;
343 extraInfo = rth.extraInfo;
354 typedef void* view_t;
356 typedef const char* user_id_t;
358 static const uint8_t kMaxCodecNameLength = 50;
370 uint8_t audioLevelIndication;
373 audioLevelIndication(127) {}
409 kMaxDataSizeSamples = 3840,
411 kMaxDataSizeBytes = kMaxDataSizeSamples *
sizeof(int16_t),
451 if (length > kMaxDataSizeSamples) {
452 length = kMaxDataSizeSamples;
455 memcpy(
data_, src.
data_, length *
sizeof(int16_t));
470 AudioPcmFrame(
const AudioPcmFrame& src)
477 size_t length = src.samples_per_channel_ * src.num_channels_;
478 if (length > kMaxDataSizeSamples) {
479 length = kMaxDataSizeSamples;
482 memcpy(this->data_, src.data_, length *
sizeof(int16_t));
488 enum AUDIO_DUAL_MONO_MODE {
490 AUDIO_DUAL_MONO_STEREO = 0,
492 AUDIO_DUAL_MONO_L = 1,
494 AUDIO_DUAL_MONO_R = 2,
496 AUDIO_DUAL_MONO_MIX = 3
502 enum VIDEO_PIXEL_FORMAT {
506 VIDEO_PIXEL_DEFAULT = 0,
510 VIDEO_PIXEL_I420 = 1,
514 VIDEO_PIXEL_BGRA = 2,
518 VIDEO_PIXEL_NV21 = 3,
522 VIDEO_PIXEL_RGBA = 4,
526 VIDEO_PIXEL_NV12 = 8,
530 VIDEO_TEXTURE_2D = 10,
534 VIDEO_TEXTURE_OES = 11,
538 VIDEO_CVPIXEL_NV12 = 12,
542 VIDEO_CVPIXEL_I420 = 13,
546 VIDEO_CVPIXEL_BGRA = 14,
550 VIDEO_CVPIXEL_P010 = 15,
554 VIDEO_PIXEL_I422 = 16,
558 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
563 VIDEO_PIXEL_I010 = 18,
569 enum RENDER_MODE_TYPE {
574 RENDER_MODE_HIDDEN = 1,
585 RENDER_MODE_ADAPTIVE __deprecated = 3,
591 enum CAMERA_VIDEO_SOURCE_TYPE {
595 CAMERA_SOURCE_FRONT = 0,
599 CAMERA_SOURCE_BACK = 1,
603 VIDEO_SOURCE_UNSPECIFIED = 2,
613 KEY_FACE_CAPTURE = 0,
616 virtual const char* getMetaInfoStr(META_INFO_KEY key)
const = 0;
623 PRIMARYID_UNSPECIFIED = 2,
624 PRIMARYID_BT470M = 4,
625 PRIMARYID_BT470BG = 5,
626 PRIMARYID_SMPTE170M = 6,
627 PRIMARYID_SMPTE240M = 7,
629 PRIMARYID_BT2020 = 9,
630 PRIMARYID_SMPTEST428 = 10,
631 PRIMARYID_SMPTEST431 = 11,
632 PRIMARYID_SMPTEST432 = 12,
633 PRIMARYID_JEDECP22 = 22,
652 MATRIXID_UNSPECIFIED = 2,
654 MATRIXID_BT470BG = 5,
655 MATRIXID_SMPTE170M = 6,
656 MATRIXID_SMPTE240M = 7,
658 MATRIXID_BT2020_NCL = 9,
659 MATRIXID_BT2020_CL = 10,
660 MATRIXID_SMPTE2085 = 11,
661 MATRIXID_CDNCLS = 12,
663 MATRIXID_BT2100_ICTCP = 14,
668 TRANSFERID_BT709 = 1,
669 TRANSFERID_UNSPECIFIED = 2,
670 TRANSFERID_GAMMA22 = 4,
671 TRANSFERID_GAMMA28 = 5,
672 TRANSFERID_SMPTE170M = 6,
673 TRANSFERID_SMPTE240M = 7,
674 TRANSFERID_LINEAR = 8,
676 TRANSFERID_LOG_SQRT = 10,
677 TRANSFERID_IEC61966_2_4 = 11,
678 TRANSFERID_BT1361_ECG = 12,
679 TRANSFERID_IEC61966_2_1 = 13,
680 TRANSFERID_BT2020_10 = 14,
681 TRANSFERID_BT2020_12 = 15,
682 TRANSFERID_SMPTEST2084 = 16,
683 TRANSFERID_SMPTEST428 = 17,
684 TRANSFERID_ARIB_STD_B67 = 18,
693 : primaries(PRIMARYID_UNSPECIFIED), transfer(TRANSFERID_UNSPECIFIED),
694 matrix(MATRIXID_UNSPECIFIED), range(RANGEID_INVALID) {}
696 bool validate()
const {
697 return primaries != PRIMARYID_UNSPECIFIED || transfer != TRANSFERID_UNSPECIFIED ||
698 matrix != MATRIXID_UNSPECIFIED ||
699 range != RANGEID_INVALID;
770 bool validate()
const {
780 enum ALPHA_STITCH_MODE {
792 ALPHA_STITCH_BELOW = 2,
796 ALPHA_STITCH_LEFT = 3,
800 ALPHA_STITCH_RIGHT = 4,
810 format(VIDEO_PIXEL_DEFAULT),
999 type(VIDEO_PIXEL_DEFAULT),
1149 virtual bool isExternal() {
return true; }
1150 virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference() {
return VIDEO_PIXEL_DEFAULT; }
1153 enum MEDIA_PLAYER_SOURCE_TYPE {
1159 MEDIA_PLAYER_SOURCE_DEFAULT,
1165 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
1170 MEDIA_PLAYER_SOURCE_SIMPLE,
1173 enum VIDEO_MODULE_POSITION {
1174 POSITION_POST_CAPTURER = 1 << 0,
1175 POSITION_PRE_RENDERER = 1 << 1,
1176 POSITION_PRE_ENCODER = 1 << 2,
1177 POSITION_POST_CAPTURER_ORIGIN = 1 << 3,
1213 enum { MAX_HANDLE_TIME_CNT = 10 };
1293 AUDIO_FRAME_POSITION_NONE = 0x0000,
1331 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode;
1339 AudioParams(
int samplerate,
int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
int samplesPerCall) :
sample_rate(samplerate), channels(channel), mode(type),
samples_per_call(samplesPerCall) {}
1343 virtual ~IAudioFrameObserverBase() {}
1687 virtual bool onTranscodedVideoFrame(
VideoFrame& videoFrame) = 0;
1766 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
1782 enum EXTERNAL_VIDEO_SOURCE_TYPE {
1790 ENCODED_VIDEO_FRAME,
1798 enum MediaRecorderContainerFormat {
1809 enum MediaRecorderStreamType {
1813 STREAM_TYPE_AUDIO = 0x01,
1817 STREAM_TYPE_VIDEO = 0x02,
1821 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
1828 enum RecorderState {
1832 RECORDER_STATE_ERROR = -1,
1836 RECORDER_STATE_START = 2,
1840 RECORDER_STATE_STOP = 3,
1847 enum RecorderReasonCode {
1851 RECORDER_REASON_NONE = 0,
1855 RECORDER_REASON_WRITE_FAILED = 1,
1859 RECORDER_REASON_NO_STREAM = 2,
1863 RECORDER_REASON_OVER_MAX_DURATION = 3,
1867 RECORDER_REASON_CONFIG_CHANGED = 4,
1960 virtual void onRecorderStateChanged(
const char* channelId, rtc::uid_t uid, RecorderState state, RecorderReasonCode reason) = 0;
const char * providerName
Definition: AgoraMediaBase.h:56
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:337
Definition: AgoraMediaBase.h:189
Definition: AgoraBase.h:1621
const char * serverConfig
Definition: AgoraMediaBase.h:333
Definition: AgoraMediaBase.h:41
Definition: AgoraMediaBase.h:312
int moduleCount
Definition: AgoraMediaBase.h:340
unsigned int interval
Definition: AgoraMediaBase.h:320
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:316
uid_t uid
Definition: AgoraMediaBase.h:52
bool isValid
Definition: AgoraMediaBase.h:47
Definition: AgoraMediaBase.h:328
const char * extensionName
Definition: AgoraMediaBase.h:60