|
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,
576 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
581 VIDEO_PIXEL_I010 = 18,
587 enum RENDER_MODE_TYPE {
592 RENDER_MODE_HIDDEN = 1,
603 RENDER_MODE_ADAPTIVE __deprecated = 3,
609 enum CAMERA_VIDEO_SOURCE_TYPE {
613 CAMERA_SOURCE_FRONT = 0,
617 CAMERA_SOURCE_BACK = 1,
621 VIDEO_SOURCE_UNSPECIFIED = 2,
631 KEY_FACE_CAPTURE = 0,
634 virtual const char* getMetaInfoStr(META_INFO_KEY key)
const = 0;
641 PRIMARYID_UNSPECIFIED = 2,
642 PRIMARYID_BT470M = 4,
643 PRIMARYID_BT470BG = 5,
644 PRIMARYID_SMPTE170M = 6,
645 PRIMARYID_SMPTE240M = 7,
647 PRIMARYID_BT2020 = 9,
648 PRIMARYID_SMPTEST428 = 10,
649 PRIMARYID_SMPTEST431 = 11,
650 PRIMARYID_SMPTEST432 = 12,
651 PRIMARYID_JEDECP22 = 22,
670 MATRIXID_UNSPECIFIED = 2,
672 MATRIXID_BT470BG = 5,
673 MATRIXID_SMPTE170M = 6,
674 MATRIXID_SMPTE240M = 7,
676 MATRIXID_BT2020_NCL = 9,
677 MATRIXID_BT2020_CL = 10,
678 MATRIXID_SMPTE2085 = 11,
679 MATRIXID_CDNCLS = 12,
681 MATRIXID_BT2100_ICTCP = 14,
686 TRANSFERID_BT709 = 1,
687 TRANSFERID_UNSPECIFIED = 2,
688 TRANSFERID_GAMMA22 = 4,
689 TRANSFERID_GAMMA28 = 5,
690 TRANSFERID_SMPTE170M = 6,
691 TRANSFERID_SMPTE240M = 7,
692 TRANSFERID_LINEAR = 8,
694 TRANSFERID_LOG_SQRT = 10,
695 TRANSFERID_IEC61966_2_4 = 11,
696 TRANSFERID_BT1361_ECG = 12,
697 TRANSFERID_IEC61966_2_1 = 13,
698 TRANSFERID_BT2020_10 = 14,
699 TRANSFERID_BT2020_12 = 15,
700 TRANSFERID_SMPTEST2084 = 16,
701 TRANSFERID_SMPTEST428 = 17,
702 TRANSFERID_ARIB_STD_B67 = 18,
711 : primaries(PRIMARYID_UNSPECIFIED), transfer(TRANSFERID_UNSPECIFIED),
712 matrix(MATRIXID_UNSPECIFIED), range(RANGEID_INVALID) {}
714 bool validate()
const {
715 return primaries != PRIMARYID_UNSPECIFIED || transfer != TRANSFERID_UNSPECIFIED ||
716 matrix != MATRIXID_UNSPECIFIED ||
717 range != RANGEID_INVALID;
788 bool validate()
const {
798 enum ALPHA_STITCH_MODE {
810 ALPHA_STITCH_BELOW = 2,
814 ALPHA_STITCH_LEFT = 3,
818 ALPHA_STITCH_RIGHT = 4,
828 format(VIDEO_PIXEL_DEFAULT),
1026 type(VIDEO_PIXEL_DEFAULT),
1186 virtual bool isExternal() {
return true; }
1216 enum MEDIA_PLAYER_SOURCE_TYPE {
1222 MEDIA_PLAYER_SOURCE_DEFAULT,
1228 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
1233 MEDIA_PLAYER_SOURCE_SIMPLE,
1239 enum VIDEO_MODULE_POSITION {
1245 POSITION_POST_CAPTURER = 1 << 0,
1250 POSITION_PRE_RENDERER = 1 << 1,
1260 POSITION_PRE_ENCODER = 1 << 2,
1266 POSITION_POST_CAPTURER_ORIGIN = 1 << 3,
1273 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1274 enum CONTENT_INSPECT_RESULT {
1275 CONTENT_INSPECT_NEUTRAL = 1,
1276 CONTENT_INSPECT_SEXY = 2,
1277 CONTENT_INSPECT_PORN = 3,
1283 enum CONTENT_INSPECT_TYPE {
1287 CONTENT_INSPECT_INVALID = 0,
1292 CONTENT_INSPECT_MODERATION __deprecated = 1,
1297 CONTENT_INSPECT_SUPERVISION = 2,
1303 CONTENT_INSPECT_IMAGE_MODERATION = 3
1326 type = CONTENT_INSPECT_INVALID;
1328 position = base::POSITION_PRE_ENCODER;
1425 enum { MAX_HANDLE_TIME_CNT = 10 };
1500 AUDIO_FRAME_POSITION_NONE = 0x0000,
1560 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
mode;
1570 mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY),
1572 AudioParams(
int samplerate,
int channel, rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE type,
1581 virtual ~IAudioFrameObserverBase() {}
1914 unsigned int spectrumNumber) = 0;
1942 const char* channelId, rtc::uid_t uid,
const uint8_t* imageBuffer,
size_t length,
2126 virtual bool onTranscodedVideoFrame(
VideoFrame& videoFrame) = 0;
2246 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
2262 enum EXTERNAL_VIDEO_SOURCE_TYPE {
2270 ENCODED_VIDEO_FRAME,
2278 enum MediaRecorderContainerFormat {
2289 enum MediaRecorderStreamType {
2293 STREAM_TYPE_AUDIO = 0x01,
2297 STREAM_TYPE_VIDEO = 0x02,
2301 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
2308 enum RecorderState {
2312 RECORDER_STATE_ERROR = -1,
2316 RECORDER_STATE_START = 2,
2320 RECORDER_STATE_STOP = 3,
2327 enum RecorderReasonCode {
2331 RECORDER_REASON_NONE = 0,
2335 RECORDER_REASON_WRITE_FAILED = 1,
2340 RECORDER_REASON_NO_STREAM = 2,
2344 RECORDER_REASON_OVER_MAX_DURATION = 3,
2348 RECORDER_REASON_CONFIG_CHANGED = 4,
2438 MediaRecorderStreamType type,
int duration,
int interval)
2521 RecorderInfo(
const char* name,
unsigned int dur,
unsigned int size)
2543 RecorderReasonCode reason) = 0;
const char * providerName
Definition: AgoraMediaBase.h:55
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:1355
Definition: AgoraMediaBase.h:250
Information about externally encoded video frames.
Definition: AgoraBase.h:1735
const char * serverConfig
Definition: AgoraMediaBase.h:1347
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:1310
int moduleCount
Definition: AgoraMediaBase.h:1361
unsigned int interval
Definition: AgoraMediaBase.h:1320
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:1314
uid_t uid
Definition: AgoraMediaBase.h:51
bool isValid
Definition: AgoraMediaBase.h:47
base::VIDEO_MODULE_POSITION position
Definition: AgoraMediaBase.h:1324
Screenshot and upload configuration.
Definition: AgoraMediaBase.h:1334
const char * extensionName
Definition: AgoraMediaBase.h:59
const char * extraInfo
Definition: AgoraMediaBase.h:1341