|
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;
67 enum VIDEO_SOURCE_TYPE {
71 VIDEO_SOURCE_CAMERA_PRIMARY = 0,
75 VIDEO_SOURCE_CAMERA = VIDEO_SOURCE_CAMERA_PRIMARY,
79 VIDEO_SOURCE_CAMERA_SECONDARY = 1,
83 VIDEO_SOURCE_SCREEN_PRIMARY = 2,
87 VIDEO_SOURCE_SCREEN = VIDEO_SOURCE_SCREEN_PRIMARY,
91 VIDEO_SOURCE_SCREEN_SECONDARY = 3,
95 VIDEO_SOURCE_CUSTOM = 4,
99 VIDEO_SOURCE_MEDIA_PLAYER = 5,
103 VIDEO_SOURCE_RTC_IMAGE_PNG = 6,
107 VIDEO_SOURCE_RTC_IMAGE_JPEG = 7,
111 VIDEO_SOURCE_RTC_IMAGE_GIF = 8,
115 VIDEO_SOURCE_REMOTE = 9,
119 VIDEO_SOURCE_TRANSCODED = 10,
124 VIDEO_SOURCE_CAMERA_THIRD = 11,
128 VIDEO_SOURCE_CAMERA_FOURTH = 12,
132 VIDEO_SOURCE_SCREEN_THIRD = 13,
136 VIDEO_SOURCE_SCREEN_FOURTH = 14,
140 VIDEO_SOURCE_SPEECH_DRIVEN = 15,
145 VIDEO_SOURCE_UNKNOWN = 100
151 enum AUDIO_SOURCE_TYPE {
155 AUDIO_SOURCE_MICROPHONE = 0,
159 AUDIO_SOURCE_CUSTOM = 1,
163 AUDIO_SOURCE_MEDIA_PLAYER = 2,
167 AUDIO_SOURCE_LOOPBACK_RECORDING = 3,
170 AUDIO_SOURCE_MIXED_STREAM = 4,
174 AUDIO_SOURCE_REMOTE_USER = 5,
178 AUDIO_SOURCE_REMOTE_CHANNEL = 6,
183 AUDIO_SOURCE_UNKNOWN = 100
205 ROUTE_HEADSETNOMIC = 2,
209 ROUTE_SPEAKERPHONE = 3,
213 ROUTE_LOUDSPEAKER = 4,
217 ROUTE_BLUETOOTH_DEVICE_HFP = 5,
229 ROUTE_DISPLAYPORT = 8,
237 ROUTE_BLUETOOTH_DEVICE_A2DP = 10,
243 enum BYTES_PER_SAMPLE {
247 TWO_BYTES_PER_SAMPLE = 2,
253 size_t frames_per_buffer;
255 AudioParameters() : sample_rate(0), channels(0), frames_per_buffer(0) {}
261 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
267 RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
274 RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
283 enum MEDIA_SOURCE_TYPE {
287 AUDIO_PLAYOUT_SOURCE = 0,
291 AUDIO_RECORDING_SOURCE = 1,
295 PRIMARY_CAMERA_SOURCE = 2,
299 SECONDARY_CAMERA_SOURCE = 3,
303 PRIMARY_SCREEN_SOURCE = 4,
307 SECONDARY_SCREEN_SOURCE = 5,
311 CUSTOM_VIDEO_SOURCE = 6,
315 MEDIA_PLAYER_SOURCE = 7,
319 RTC_IMAGE_PNG_SOURCE = 8,
323 RTC_IMAGE_JPEG_SOURCE = 9,
327 RTC_IMAGE_GIF_SOURCE = 10,
331 REMOTE_VIDEO_SOURCE = 11,
335 TRANSCODED_VIDEO_SOURCE = 12,
339 SPEECH_DRIVEN_VIDEO_SOURCE = 13,
343 UNKNOWN_MEDIA_SOURCE = 100
348 typedef void* view_t;
350 typedef const char* user_id_t;
352 static const uint8_t kMaxCodecNameLength = 50;
364 uint8_t audioLevelIndication;
400 kMaxDataSizeSamples = 3840,
402 kMaxDataSizeBytes = kMaxDataSizeSamples *
sizeof(int16_t),
454 if (length > kMaxDataSizeSamples) {
455 length = kMaxDataSizeSamples;
458 memcpy(
data_, src.
data_, length *
sizeof(int16_t));
474 AudioPcmFrame(
const AudioPcmFrame& src)
482 size_t length = src.samples_per_channel_ * src.num_channels_;
483 if (length > kMaxDataSizeSamples) {
484 length = kMaxDataSizeSamples;
487 memcpy(this->data_, src.data_, length *
sizeof(int16_t));
494 enum AUDIO_DUAL_MONO_MODE {
498 AUDIO_DUAL_MONO_STEREO = 0,
503 AUDIO_DUAL_MONO_L = 1,
508 AUDIO_DUAL_MONO_R = 2,
513 AUDIO_DUAL_MONO_MIX = 3
519 enum VIDEO_PIXEL_FORMAT {
523 VIDEO_PIXEL_DEFAULT = 0,
527 VIDEO_PIXEL_I420 = 1,
531 VIDEO_PIXEL_BGRA = 2,
535 VIDEO_PIXEL_NV21 = 3,
539 VIDEO_PIXEL_RGBA = 4,
543 VIDEO_PIXEL_NV12 = 8,
547 VIDEO_TEXTURE_2D = 10,
551 VIDEO_TEXTURE_OES = 11,
555 VIDEO_CVPIXEL_NV12 = 12,
559 VIDEO_CVPIXEL_I420 = 13,
563 VIDEO_CVPIXEL_BGRA = 14,
567 VIDEO_CVPIXEL_P010 = 15,
571 VIDEO_PIXEL_I422 = 16,
577 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
582 VIDEO_PIXEL_I010 = 18,
588 enum RENDER_MODE_TYPE {
593 RENDER_MODE_HIDDEN = 1,
604 RENDER_MODE_ADAPTIVE __deprecated = 3,
610 enum CAMERA_VIDEO_SOURCE_TYPE {
614 CAMERA_SOURCE_FRONT = 0,
618 CAMERA_SOURCE_BACK = 1,
622 VIDEO_SOURCE_UNSPECIFIED = 2,
632 KEY_FACE_CAPTURE = 0,
635 virtual const char* getMetaInfoStr(META_INFO_KEY key)
const = 0;
642 PRIMARYID_UNSPECIFIED = 2,
643 PRIMARYID_BT470M = 4,
644 PRIMARYID_BT470BG = 5,
645 PRIMARYID_SMPTE170M = 6,
646 PRIMARYID_SMPTE240M = 7,
648 PRIMARYID_BT2020 = 9,
649 PRIMARYID_SMPTEST428 = 10,
650 PRIMARYID_SMPTEST431 = 11,
651 PRIMARYID_SMPTEST432 = 12,
652 PRIMARYID_JEDECP22 = 22,
671 MATRIXID_UNSPECIFIED = 2,
673 MATRIXID_BT470BG = 5,
674 MATRIXID_SMPTE170M = 6,
675 MATRIXID_SMPTE240M = 7,
677 MATRIXID_BT2020_NCL = 9,
678 MATRIXID_BT2020_CL = 10,
679 MATRIXID_SMPTE2085 = 11,
680 MATRIXID_CDNCLS = 12,
682 MATRIXID_BT2100_ICTCP = 14,
687 TRANSFERID_BT709 = 1,
688 TRANSFERID_UNSPECIFIED = 2,
689 TRANSFERID_GAMMA22 = 4,
690 TRANSFERID_GAMMA28 = 5,
691 TRANSFERID_SMPTE170M = 6,
692 TRANSFERID_SMPTE240M = 7,
693 TRANSFERID_LINEAR = 8,
695 TRANSFERID_LOG_SQRT = 10,
696 TRANSFERID_IEC61966_2_4 = 11,
697 TRANSFERID_BT1361_ECG = 12,
698 TRANSFERID_IEC61966_2_1 = 13,
699 TRANSFERID_BT2020_10 = 14,
700 TRANSFERID_BT2020_12 = 15,
701 TRANSFERID_SMPTEST2084 = 16,
702 TRANSFERID_SMPTEST428 = 17,
703 TRANSFERID_ARIB_STD_B67 = 18,
712 : primaries(PRIMARYID_UNSPECIFIED), transfer(TRANSFERID_UNSPECIFIED),
713 matrix(MATRIXID_UNSPECIFIED), range(RANGEID_INVALID) {}
715 bool validate()
const {
716 return primaries != PRIMARYID_UNSPECIFIED || transfer != TRANSFERID_UNSPECIFIED ||
717 matrix != MATRIXID_UNSPECIFIED ||
718 range != RANGEID_INVALID;
789 bool validate()
const {
799 enum ALPHA_STITCH_MODE {
811 ALPHA_STITCH_BELOW = 2,
815 ALPHA_STITCH_LEFT = 3,
819 ALPHA_STITCH_RIGHT = 4,
829 format(VIDEO_PIXEL_DEFAULT),
1028 type(VIDEO_PIXEL_DEFAULT),
1190 virtual bool isExternal() {
return true; }
1220 enum MEDIA_PLAYER_SOURCE_TYPE {
1226 MEDIA_PLAYER_SOURCE_DEFAULT,
1232 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
1237 MEDIA_PLAYER_SOURCE_SIMPLE,
1243 enum VIDEO_MODULE_POSITION {
1249 POSITION_POST_CAPTURER = 1 << 0,
1254 POSITION_PRE_RENDERER = 1 << 1,
1264 POSITION_PRE_ENCODER = 1 << 2,
1270 POSITION_POST_CAPTURER_ORIGIN = 1 << 3,
1277 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1278 enum CONTENT_INSPECT_RESULT {
1279 CONTENT_INSPECT_NEUTRAL = 1,
1280 CONTENT_INSPECT_SEXY = 2,
1281 CONTENT_INSPECT_PORN = 3,
1287 enum CONTENT_INSPECT_TYPE {
1291 CONTENT_INSPECT_INVALID = 0,
1296 CONTENT_INSPECT_MODERATION __deprecated = 1,
1301 CONTENT_INSPECT_SUPERVISION = 2,
1307 CONTENT_INSPECT_IMAGE_MODERATION = 3
1330 type = CONTENT_INSPECT_INVALID;
1332 position = base::POSITION_PRE_ENCODER;
1432 enum { MAX_HANDLE_TIME_CNT = 10 };
1507 AUDIO_FRAME_POSITION_NONE = 0x0000,
1567 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
mode;
1577 mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY),
1579 AudioParams(
int samplerate,
int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
1588 virtual ~IAudioFrameObserverBase() {}
1922 unsigned int spectrumNumber) = 0;
1950 const char* channelId, rtc::uid_t uid,
const uint8_t* imageBuffer,
size_t length,
2137 virtual bool onTranscodedVideoFrame(
VideoFrame& videoFrame) = 0;
2257 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
2273 enum EXTERNAL_VIDEO_SOURCE_TYPE {
2281 ENCODED_VIDEO_FRAME,
2289 enum MediaRecorderContainerFormat {
2300 enum MediaRecorderStreamType {
2304 STREAM_TYPE_AUDIO = 0x01,
2308 STREAM_TYPE_VIDEO = 0x02,
2312 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
2319 enum RecorderState {
2323 RECORDER_STATE_ERROR = -1,
2327 RECORDER_STATE_START = 2,
2331 RECORDER_STATE_STOP = 3,
2338 enum RecorderReasonCode {
2342 RECORDER_REASON_NONE = 0,
2346 RECORDER_REASON_WRITE_FAILED = 1,
2351 RECORDER_REASON_NO_STREAM = 2,
2355 RECORDER_REASON_OVER_MAX_DURATION = 3,
2359 RECORDER_REASON_CONFIG_CHANGED = 4,
2449 MediaRecorderStreamType type,
int duration,
int interval)
2535 RecorderInfo(
const char* name,
unsigned int dur,
unsigned int size)
2560 RecorderReasonCode reason) = 0;
const char * providerName
Definition: AgoraMediaBase.h:55
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:1359
Definition: AgoraMediaBase.h:250
Information about externally encoded video frames.
Definition: AgoraBase.h:1821
const char * serverConfig
Definition: AgoraMediaBase.h:1351
The context information of the extension.
Definition: AgoraMediaBase.h:41
ContentInspectModule class, a structure used to configure the frequency of video screenshot and uploa...
Definition: AgoraMediaBase.h:1314
int moduleCount
Definition: AgoraMediaBase.h:1365
unsigned int interval
Definition: AgoraMediaBase.h:1324
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:1318
uid_t uid
Definition: AgoraMediaBase.h:51
bool isValid
Definition: AgoraMediaBase.h:47
base::VIDEO_MODULE_POSITION position
Definition: AgoraMediaBase.h:1328
Screenshot and upload configuration.
Definition: AgoraMediaBase.h:1338
const char * extensionName
Definition: AgoraMediaBase.h:59
const char * extraInfo
Definition: AgoraMediaBase.h:1345