|
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
127 enum AUDIO_SOURCE_TYPE {
130 AUDIO_SOURCE_MICROPHONE = 0,
133 AUDIO_SOURCE_CUSTOM = 1,
136 AUDIO_SOURCE_MEDIA_PLAYER = 2,
139 AUDIO_SOURCE_LOOPBACK_RECORDING = 3,
142 AUDIO_SOURCE_MIXED_STREAM = 4,
145 AUDIO_SOURCE_REMOTE_USER = 5,
148 AUDIO_SOURCE_REMOTE_CHANNEL = 6,
150 AUDIO_SOURCE_UNKNOWN = 100
172 ROUTE_HEADSETNOMIC = 2,
176 ROUTE_SPEAKERPHONE = 3,
180 ROUTE_LOUDSPEAKER = 4,
184 ROUTE_BLUETOOTH_DEVICE_HFP = 5,
196 ROUTE_DISPLAYPORT = 8,
204 ROUTE_BLUETOOTH_DEVICE_A2DP = 10,
210 enum BYTES_PER_SAMPLE {
214 TWO_BYTES_PER_SAMPLE = 2,
220 size_t frames_per_buffer;
222 AudioParameters() : sample_rate(0), channels(0), frames_per_buffer(0) {}
228 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
232 RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
238 RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
247 enum MEDIA_SOURCE_TYPE {
251 AUDIO_PLAYOUT_SOURCE = 0,
255 AUDIO_RECORDING_SOURCE = 1,
259 PRIMARY_CAMERA_SOURCE = 2,
263 SECONDARY_CAMERA_SOURCE = 3,
267 PRIMARY_SCREEN_SOURCE = 4,
271 SECONDARY_SCREEN_SOURCE = 5,
275 CUSTOM_VIDEO_SOURCE = 6,
279 MEDIA_PLAYER_SOURCE = 7,
283 RTC_IMAGE_PNG_SOURCE = 8,
287 RTC_IMAGE_JPEG_SOURCE = 9,
291 RTC_IMAGE_GIF_SOURCE = 10,
295 REMOTE_VIDEO_SOURCE = 11,
299 TRANSCODED_VIDEO_SOURCE = 12,
303 SPEECH_DRIVEN_VIDEO_SOURCE = 13,
307 UNKNOWN_MEDIA_SOURCE = 100
312 typedef void* view_t;
314 typedef const char* user_id_t;
316 static const uint8_t kMaxCodecNameLength = 50;
328 uint8_t audioLevelIndication;
364 kMaxDataSizeSamples = 3840,
366 kMaxDataSizeBytes = kMaxDataSizeSamples *
sizeof(int16_t),
411 if (length > kMaxDataSizeSamples) {
412 length = kMaxDataSizeSamples;
415 memcpy(
data_, src.
data_, length *
sizeof(int16_t));
431 AudioPcmFrame(
const AudioPcmFrame& src)
439 size_t length = src.samples_per_channel_ * src.num_channels_;
440 if (length > kMaxDataSizeSamples) {
441 length = kMaxDataSizeSamples;
444 memcpy(this->data_, src.data_, length *
sizeof(int16_t));
450 enum AUDIO_DUAL_MONO_MODE {
452 AUDIO_DUAL_MONO_STEREO = 0,
454 AUDIO_DUAL_MONO_L = 1,
456 AUDIO_DUAL_MONO_R = 2,
458 AUDIO_DUAL_MONO_MIX = 3
464 enum VIDEO_PIXEL_FORMAT {
468 VIDEO_PIXEL_DEFAULT = 0,
472 VIDEO_PIXEL_I420 = 1,
476 VIDEO_PIXEL_BGRA = 2,
480 VIDEO_PIXEL_NV21 = 3,
484 VIDEO_PIXEL_RGBA = 4,
488 VIDEO_PIXEL_NV12 = 8,
492 VIDEO_TEXTURE_2D = 10,
496 VIDEO_TEXTURE_OES = 11,
500 VIDEO_CVPIXEL_NV12 = 12,
504 VIDEO_CVPIXEL_I420 = 13,
508 VIDEO_CVPIXEL_BGRA = 14,
512 VIDEO_CVPIXEL_P010 = 15,
516 VIDEO_PIXEL_I422 = 16,
521 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
526 VIDEO_PIXEL_I010 = 18,
532 enum RENDER_MODE_TYPE {
537 RENDER_MODE_HIDDEN = 1,
548 RENDER_MODE_ADAPTIVE __deprecated = 3,
554 enum CAMERA_VIDEO_SOURCE_TYPE {
558 CAMERA_SOURCE_FRONT = 0,
562 CAMERA_SOURCE_BACK = 1,
566 VIDEO_SOURCE_UNSPECIFIED = 2,
576 KEY_FACE_CAPTURE = 0,
579 virtual const char* getMetaInfoStr(META_INFO_KEY key)
const = 0;
586 PRIMARYID_UNSPECIFIED = 2,
587 PRIMARYID_BT470M = 4,
588 PRIMARYID_BT470BG = 5,
589 PRIMARYID_SMPTE170M = 6,
590 PRIMARYID_SMPTE240M = 7,
592 PRIMARYID_BT2020 = 9,
593 PRIMARYID_SMPTEST428 = 10,
594 PRIMARYID_SMPTEST431 = 11,
595 PRIMARYID_SMPTEST432 = 12,
596 PRIMARYID_JEDECP22 = 22,
615 MATRIXID_UNSPECIFIED = 2,
617 MATRIXID_BT470BG = 5,
618 MATRIXID_SMPTE170M = 6,
619 MATRIXID_SMPTE240M = 7,
621 MATRIXID_BT2020_NCL = 9,
622 MATRIXID_BT2020_CL = 10,
623 MATRIXID_SMPTE2085 = 11,
624 MATRIXID_CDNCLS = 12,
626 MATRIXID_BT2100_ICTCP = 14,
631 TRANSFERID_BT709 = 1,
632 TRANSFERID_UNSPECIFIED = 2,
633 TRANSFERID_GAMMA22 = 4,
634 TRANSFERID_GAMMA28 = 5,
635 TRANSFERID_SMPTE170M = 6,
636 TRANSFERID_SMPTE240M = 7,
637 TRANSFERID_LINEAR = 8,
639 TRANSFERID_LOG_SQRT = 10,
640 TRANSFERID_IEC61966_2_4 = 11,
641 TRANSFERID_BT1361_ECG = 12,
642 TRANSFERID_IEC61966_2_1 = 13,
643 TRANSFERID_BT2020_10 = 14,
644 TRANSFERID_BT2020_12 = 15,
645 TRANSFERID_SMPTEST2084 = 16,
646 TRANSFERID_SMPTEST428 = 17,
647 TRANSFERID_ARIB_STD_B67 = 18,
656 : primaries(PRIMARYID_UNSPECIFIED), transfer(TRANSFERID_UNSPECIFIED),
657 matrix(MATRIXID_UNSPECIFIED), range(RANGEID_INVALID) {}
659 bool validate()
const {
660 return primaries != PRIMARYID_UNSPECIFIED || transfer != TRANSFERID_UNSPECIFIED ||
661 matrix != MATRIXID_UNSPECIFIED ||
662 range != RANGEID_INVALID;
733 bool validate()
const {
743 enum ALPHA_STITCH_MODE {
755 ALPHA_STITCH_BELOW = 2,
759 ALPHA_STITCH_LEFT = 3,
763 ALPHA_STITCH_RIGHT = 4,
773 format(VIDEO_PIXEL_DEFAULT),
965 type(VIDEO_PIXEL_DEFAULT),
1118 virtual bool isExternal() {
return true; }
1119 virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference() {
return VIDEO_PIXEL_DEFAULT; }
1122 enum MEDIA_PLAYER_SOURCE_TYPE {
1128 MEDIA_PLAYER_SOURCE_DEFAULT,
1134 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
1139 MEDIA_PLAYER_SOURCE_SIMPLE,
1142 enum VIDEO_MODULE_POSITION {
1143 POSITION_POST_CAPTURER = 1 << 0,
1144 POSITION_PRE_RENDERER = 1 << 1,
1145 POSITION_PRE_ENCODER = 1 << 2,
1146 POSITION_POST_CAPTURER_ORIGIN = 1 << 3,
1153 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1154 enum CONTENT_INSPECT_RESULT {
1155 CONTENT_INSPECT_NEUTRAL = 1,
1156 CONTENT_INSPECT_SEXY = 2,
1157 CONTENT_INSPECT_PORN = 3,
1160 enum CONTENT_INSPECT_TYPE {
1164 CONTENT_INSPECT_INVALID = 0,
1169 CONTENT_INSPECT_MODERATION __deprecated = 1,
1173 CONTENT_INSPECT_SUPERVISION = 2,
1177 CONTENT_INSPECT_IMAGE_MODERATION = 3
1194 type = CONTENT_INSPECT_INVALID;
1196 position = base::POSITION_PRE_ENCODER;
1202 const char* extraInfo;
1215 extraInfo = rth.extraInfo;
1278 enum { MAX_HANDLE_TIME_CNT = 10 };
1359 AUDIO_FRAME_POSITION_NONE = 0x0000,
1397 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode;
1407 mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY),
1409 AudioParams(
int samplerate,
int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
1418 virtual ~IAudioFrameObserverBase() {}
1636 unsigned int spectrumNumber) = 0;
1655 rtc::uid_t uid,
const uint8_t* imageBuffer,
size_t length,
1788 virtual bool onTranscodedVideoFrame(
VideoFrame& videoFrame) = 0;
1876 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
1892 enum EXTERNAL_VIDEO_SOURCE_TYPE {
1900 ENCODED_VIDEO_FRAME,
1908 enum MediaRecorderContainerFormat {
1919 enum MediaRecorderStreamType {
1923 STREAM_TYPE_AUDIO = 0x01,
1927 STREAM_TYPE_VIDEO = 0x02,
1931 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
1938 enum RecorderState {
1942 RECORDER_STATE_ERROR = -1,
1946 RECORDER_STATE_START = 2,
1950 RECORDER_STATE_STOP = 3,
1957 enum RecorderReasonCode {
1961 RECORDER_REASON_NONE = 0,
1965 RECORDER_REASON_WRITE_FAILED = 1,
1970 RECORDER_REASON_NO_STREAM = 2,
1974 RECORDER_REASON_OVER_MAX_DURATION = 3,
1978 RECORDER_REASON_CONFIG_CHANGED = 4,
2053 MediaRecorderStreamType type,
int duration,
int interval)
2101 RecorderInfo(
const char* name,
unsigned int dur,
unsigned int size)
2122 RecorderReasonCode reason) = 0;
const char * providerName
Definition: AgoraMediaBase.h:56
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:1210
Definition: AgoraMediaBase.h:217
Definition: AgoraBase.h:1679
const char * serverConfig
Definition: AgoraMediaBase.h:1206
Definition: AgoraMediaBase.h:41
Definition: AgoraMediaBase.h:1180
int moduleCount
Definition: AgoraMediaBase.h:1213
unsigned int interval
Definition: AgoraMediaBase.h:1188
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:1184
uid_t uid
Definition: AgoraMediaBase.h:52
bool isValid
Definition: AgoraMediaBase.h:47
base::VIDEO_MODULE_POSITION position
Definition: AgoraMediaBase.h:1192
Definition: AgoraMediaBase.h:1201
const char * extensionName
Definition: AgoraMediaBase.h:60