|
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;
42 enum VIDEO_SOURCE_TYPE {
45 VIDEO_SOURCE_CAMERA_PRIMARY = 0,
46 VIDEO_SOURCE_CAMERA = VIDEO_SOURCE_CAMERA_PRIMARY,
49 VIDEO_SOURCE_CAMERA_SECONDARY = 1,
52 VIDEO_SOURCE_SCREEN_PRIMARY = 2,
53 VIDEO_SOURCE_SCREEN = VIDEO_SOURCE_SCREEN_PRIMARY,
56 VIDEO_SOURCE_SCREEN_SECONDARY = 3,
59 VIDEO_SOURCE_CUSTOM = 4,
62 VIDEO_SOURCE_MEDIA_PLAYER = 5,
65 VIDEO_SOURCE_RTC_IMAGE_PNG = 6,
68 VIDEO_SOURCE_RTC_IMAGE_JPEG = 7,
71 VIDEO_SOURCE_RTC_IMAGE_GIF = 8,
74 VIDEO_SOURCE_REMOTE = 9,
77 VIDEO_SOURCE_TRANSCODED = 10,
81 VIDEO_SOURCE_CAMERA_THIRD = 11,
84 VIDEO_SOURCE_CAMERA_FOURTH = 12,
87 VIDEO_SOURCE_SCREEN_THIRD = 13,
90 VIDEO_SOURCE_SCREEN_FOURTH = 14,
93 VIDEO_SOURCE_SPEECH_DRIVEN = 15,
95 VIDEO_SOURCE_UNKNOWN = 100
118 ROUTE_HEADSETNOMIC = 2,
122 ROUTE_SPEAKERPHONE = 3,
126 ROUTE_LOUDSPEAKER = 4,
130 ROUTE_BLUETOOTH_DEVICE_HFP = 5,
142 ROUTE_DISPLAYPORT = 8,
150 ROUTE_BLUETOOTH_DEVICE_A2DP = 10,
156 enum BYTES_PER_SAMPLE {
160 TWO_BYTES_PER_SAMPLE = 2,
166 size_t frames_per_buffer;
171 frames_per_buffer(0) {}
177 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
181 RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
186 RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
195 enum MEDIA_SOURCE_TYPE {
199 AUDIO_PLAYOUT_SOURCE = 0,
203 AUDIO_RECORDING_SOURCE = 1,
207 PRIMARY_CAMERA_SOURCE = 2,
211 SECONDARY_CAMERA_SOURCE = 3,
215 PRIMARY_SCREEN_SOURCE = 4,
219 SECONDARY_SCREEN_SOURCE = 5,
223 CUSTOM_VIDEO_SOURCE = 6,
227 MEDIA_PLAYER_SOURCE = 7,
231 RTC_IMAGE_PNG_SOURCE = 8,
235 RTC_IMAGE_JPEG_SOURCE = 9,
239 RTC_IMAGE_GIF_SOURCE = 10,
243 REMOTE_VIDEO_SOURCE = 11,
247 TRANSCODED_VIDEO_SOURCE = 12,
251 SPEECH_DRIVEN_VIDEO_SOURCE = 13,
255 UNKNOWN_MEDIA_SOURCE = 100
260 typedef void* view_t;
262 typedef const char* user_id_t;
264 static const uint8_t kMaxCodecNameLength = 50;
276 uint8_t audioLevelIndication;
279 audioLevelIndication(127) {}
315 kMaxDataSizeSamples = 3840,
317 kMaxDataSizeBytes = kMaxDataSizeSamples *
sizeof(int16_t),
354 if (length > kMaxDataSizeSamples) {
355 length = kMaxDataSizeSamples;
358 memcpy(this->data_, src.
data_, length *
sizeof(int16_t));
373 AudioPcmFrame(
const AudioPcmFrame& src)
380 size_t length = src.samples_per_channel_ * src.num_channels_;
381 if (length > kMaxDataSizeSamples) {
382 length = kMaxDataSizeSamples;
385 memcpy(this->data_, src.data_, length *
sizeof(int16_t));
391 enum AUDIO_DUAL_MONO_MODE {
393 AUDIO_DUAL_MONO_STEREO = 0,
395 AUDIO_DUAL_MONO_L = 1,
397 AUDIO_DUAL_MONO_R = 2,
399 AUDIO_DUAL_MONO_MIX = 3
405 enum VIDEO_PIXEL_FORMAT {
409 VIDEO_PIXEL_DEFAULT = 0,
413 VIDEO_PIXEL_I420 = 1,
417 VIDEO_PIXEL_BGRA = 2,
421 VIDEO_PIXEL_NV21 = 3,
425 VIDEO_PIXEL_RGBA = 4,
429 VIDEO_PIXEL_NV12 = 8,
433 VIDEO_TEXTURE_2D = 10,
437 VIDEO_TEXTURE_OES = 11,
441 VIDEO_CVPIXEL_NV12 = 12,
445 VIDEO_CVPIXEL_I420 = 13,
449 VIDEO_CVPIXEL_BGRA = 14,
453 VIDEO_PIXEL_I422 = 16,
457 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
462 VIDEO_PIXEL_I010 = 18,
468 enum RENDER_MODE_TYPE {
473 RENDER_MODE_HIDDEN = 1,
484 RENDER_MODE_ADAPTIVE __deprecated = 3,
490 enum CAMERA_VIDEO_SOURCE_TYPE {
494 CAMERA_SOURCE_FRONT = 0,
498 CAMERA_SOURCE_BACK = 1,
502 VIDEO_SOURCE_UNSPECIFIED = 2,
512 KEY_FACE_CAPTURE = 0,
515 virtual const char* getMetaInfoStr(META_INFO_KEY key)
const = 0;
524 format(VIDEO_PIXEL_DEFAULT),
694 type(VIDEO_PIXEL_DEFAULT),
824 virtual bool isExternal() {
return true; }
825 virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference() {
return VIDEO_PIXEL_DEFAULT; }
828 enum MEDIA_PLAYER_SOURCE_TYPE {
834 MEDIA_PLAYER_SOURCE_DEFAULT,
840 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
845 MEDIA_PLAYER_SOURCE_SIMPLE,
848 enum VIDEO_MODULE_POSITION {
849 POSITION_POST_CAPTURER = 1 << 0,
850 POSITION_PRE_RENDERER = 1 << 1,
851 POSITION_PRE_ENCODER = 1 << 2,
852 POSITION_POST_CAPTURER_ORIGIN = 1 << 3,
859 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
860 enum CONTENT_INSPECT_RESULT {
861 CONTENT_INSPECT_NEUTRAL = 1,
862 CONTENT_INSPECT_SEXY = 2,
863 CONTENT_INSPECT_PORN = 3,
866 enum CONTENT_INSPECT_TYPE {
870 CONTENT_INSPECT_INVALID = 0,
875 CONTENT_INSPECT_MODERATION __deprecated = 1,
879 CONTENT_INSPECT_SUPERVISION = 2,
883 CONTENT_INSPECT_IMAGE_MODERATION = 3
900 type = CONTENT_INSPECT_INVALID;
902 position = base::POSITION_PRE_ENCODER;
908 const char* extraInfo;
921 extraInfo = rth.extraInfo;
984 enum { MAX_HANDLE_TIME_CNT = 10 };
1064 AUDIO_FRAME_POSITION_NONE = 0x0000,
1102 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode;
1110 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) {}
1114 virtual ~IAudioFrameObserverBase() {}
1458 virtual bool onTranscodedVideoFrame(
VideoFrame& videoFrame) = 0;
1537 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
1553 enum EXTERNAL_VIDEO_SOURCE_TYPE {
1561 ENCODED_VIDEO_FRAME,
1569 enum MediaRecorderContainerFormat {
1580 enum MediaRecorderStreamType {
1584 STREAM_TYPE_AUDIO = 0x01,
1588 STREAM_TYPE_VIDEO = 0x02,
1592 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
1599 enum RecorderState {
1603 RECORDER_STATE_ERROR = -1,
1607 RECORDER_STATE_START = 2,
1611 RECORDER_STATE_STOP = 3,
1618 enum RecorderReasonCode {
1622 RECORDER_REASON_NONE = 0,
1626 RECORDER_REASON_WRITE_FAILED = 1,
1630 RECORDER_REASON_NO_STREAM = 2,
1634 RECORDER_REASON_OVER_MAX_DURATION = 3,
1638 RECORDER_REASON_CONFIG_CHANGED = 4,
1731 virtual void onRecorderStateChanged(
const char* channelId, rtc::uid_t uid, RecorderState state, RecorderReasonCode reason) = 0;
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:916
Definition: AgoraMediaBase.h:163
Definition: AgoraBase.h:1611
const char * serverConfig
Definition: AgoraMediaBase.h:912
Definition: AgoraMediaBase.h:886
int moduleCount
Definition: AgoraMediaBase.h:919
unsigned int interval
Definition: AgoraMediaBase.h:894
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:890
base::VIDEO_MODULE_POSITION position
Definition: AgoraMediaBase.h:898
Definition: AgoraMediaBase.h:907