Agora RTC Objective-C API Reference Refactor

AgoraMediaBase.h
Go to the documentation of this file.
1 //
2 // Agora Engine SDK
3 //
4 // Created by Sting Feng in 2017-11.
5 // Copyright (c) 2017 Agora.io. All rights reserved.
6
7 #pragma once // NOLINT(build/header_guard)
8
9 #include <cstring>
10 #include <stdint.h>
11 #include <limits>
12 #include <stddef.h>
13
14 #ifndef OPTIONAL_ENUM_SIZE_T
15 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
16 #define OPTIONAL_ENUM_SIZE_T enum : size_t
17 #else
18 #define OPTIONAL_ENUM_SIZE_T enum
19 #endif
20 #endif
21
22 #if !defined(__APPLE__)
23 #define __deprecated
24 #endif
25
26 namespace agora {
27 namespace rtc {
28
29 typedef unsigned int uid_t;
30 typedef unsigned int track_id_t;
31 typedef unsigned int conn_id_t;
32 typedef unsigned int video_track_id_t;
33
34 static const unsigned int INVALID_TRACK_ID = 0xffffffff;
35 static const unsigned int DEFAULT_CONNECTION_ID = 0;
36 static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)();
37
38 static const int kAdmMaxDeviceNameSize = 128;
39 static const int kAdmMaxGuidSize = 128;
40
41
42 struct EncodedVideoFrameInfo;
43
44
48 enum VIDEO_SOURCE_TYPE {
51 VIDEO_SOURCE_CAMERA_PRIMARY = 0,
52 VIDEO_SOURCE_CAMERA = VIDEO_SOURCE_CAMERA_PRIMARY,
55 VIDEO_SOURCE_CAMERA_SECONDARY = 1,
58 VIDEO_SOURCE_SCREEN_PRIMARY = 2,
59 VIDEO_SOURCE_SCREEN = VIDEO_SOURCE_SCREEN_PRIMARY,
62 VIDEO_SOURCE_SCREEN_SECONDARY = 3,
65 VIDEO_SOURCE_CUSTOM = 4,
68 VIDEO_SOURCE_MEDIA_PLAYER = 5,
71 VIDEO_SOURCE_RTC_IMAGE_PNG = 6,
74 VIDEO_SOURCE_RTC_IMAGE_JPEG = 7,
77 VIDEO_SOURCE_RTC_IMAGE_GIF = 8,
80 VIDEO_SOURCE_REMOTE = 9,
83 VIDEO_SOURCE_TRANSCODED = 10,
84
87 VIDEO_SOURCE_CAMERA_THIRD = 11,
90 VIDEO_SOURCE_CAMERA_FOURTH = 12,
93 VIDEO_SOURCE_SCREEN_THIRD = 13,
96 VIDEO_SOURCE_SCREEN_FOURTH = 14,
99 VIDEO_SOURCE_SPEECH_DRIVEN = 15,
100
101 VIDEO_SOURCE_UNKNOWN = 100
102 };
103
107 enum AudioRoute
108 {
112 ROUTE_DEFAULT = -1,
116 ROUTE_HEADSET = 0,
120 ROUTE_EARPIECE = 1,
124 ROUTE_HEADSETNOMIC = 2,
128 ROUTE_SPEAKERPHONE = 3,
132 ROUTE_LOUDSPEAKER = 4,
136 ROUTE_HEADSETBLUETOOTH = 5,
140 ROUTE_USB = 6,
144 ROUTE_HDMI = 7,
148 ROUTE_DISPLAYPORT = 8,
152 ROUTE_AIRPLAY = 9,
156 ROUTE_VIRTUAL = 10,
160 ROUTE_CONTINUITY = 11,
161 };
162
166 enum BYTES_PER_SAMPLE {
170 TWO_BYTES_PER_SAMPLE = 2,
171 };
172
173 struct AudioParameters {
174 int sample_rate;
175 size_t channels;
176 size_t frames_per_buffer;
177
178 AudioParameters()
179 : sample_rate(0),
180 channels(0),
181 frames_per_buffer(0) {}
182 };
183
187 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
191 RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
192
196 RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
197 };
198
203 enum TRACK_AUDIO_MIXED_POLICY_TYPE {
206 TRACK_AUDIO_MIXED_LOCAL = 1 << 0,
209 TRACK_AUDIO_MIXED_REMOTE = 1 << 1,
210 };
211
218 struct AudioDeviceInfo {
222 char deviceName[kAdmMaxDeviceNameSize];
226 char deviceId[kAdmMaxGuidSize];
232 bool isCurrentSelected;
238 bool isPlayoutDevice;
239
243 AudioRoute routing;
244
245 AudioDeviceInfo() : isCurrentSelected(false),
246 isPlayoutDevice(true),
247 routing(ROUTE_DEFAULT){
248 memset(deviceName, 0, sizeof(deviceName));
249 memset(deviceId, 0, sizeof(deviceId));
250 }
251
252 AudioDeviceInfo(const AudioDeviceInfo& other) : isCurrentSelected(other.isCurrentSelected),
253 isPlayoutDevice(other.isPlayoutDevice),
254 routing(other.routing){
255 memcpy(deviceName, other.deviceName, sizeof(deviceName));
256 memcpy(deviceId, other.deviceId, sizeof(deviceId));
257 }
258
259 AudioDeviceInfo& operator=(const AudioDeviceInfo& other) {
260 isCurrentSelected = other.isCurrentSelected;
261 isPlayoutDevice = other.isPlayoutDevice;
262 routing = other.routing;
263 memcpy(deviceName, other.deviceName, sizeof(deviceName));
264 memcpy(deviceId, other.deviceId, sizeof(deviceId));
265 return *this;
266 }
267 };
268
269 } // namespace rtc
270
271 namespace media {
275 enum MEDIA_SOURCE_TYPE {
279 AUDIO_PLAYOUT_SOURCE = 0,
283 AUDIO_RECORDING_SOURCE = 1,
287 PRIMARY_CAMERA_SOURCE = 2,
291 SECONDARY_CAMERA_SOURCE = 3,
295 PRIMARY_SCREEN_SOURCE = 4,
299 SECONDARY_SCREEN_SOURCE = 5,
303 CUSTOM_VIDEO_SOURCE = 6,
307 MEDIA_PLAYER_SOURCE = 7,
311 RTC_IMAGE_PNG_SOURCE = 8,
315 RTC_IMAGE_JPEG_SOURCE = 9,
319 RTC_IMAGE_GIF_SOURCE = 10,
323 REMOTE_VIDEO_SOURCE = 11,
327 TRANSCODED_VIDEO_SOURCE = 12,
331 SPEECH_DRIVEN_VIDEO_SOURCE = 13,
335 UNKNOWN_MEDIA_SOURCE = 100
336 };
339 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
340 enum CONTENT_INSPECT_RESULT {
341 CONTENT_INSPECT_NEUTRAL = 1,
342 CONTENT_INSPECT_SEXY = 2,
343 CONTENT_INSPECT_PORN = 3,
344 };
345
346 enum CONTENT_INSPECT_TYPE {
350 CONTENT_INSPECT_INVALID = 0,
355 CONTENT_INSPECT_MODERATION __deprecated = 1,
359 CONTENT_INSPECT_SUPERVISION = 2,
363 CONTENT_INSPECT_IMAGE_MODERATION = 3
364 };
365
366 struct ContentInspectModule {
370 CONTENT_INSPECT_TYPE type;
374 unsigned int interval;
375 ContentInspectModule() {
376 type = CONTENT_INSPECT_INVALID;
377 interval = 0;
378 }
379 };
382 struct ContentInspectConfig {
383 const char* extraInfo;
387 const char* serverConfig;
391 ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT];
394 int moduleCount;
395 ContentInspectConfig& operator=(const ContentInspectConfig& rth)
396 {
397 extraInfo = rth.extraInfo;
398 serverConfig = rth.serverConfig;
399 moduleCount = rth.moduleCount;
400 memcpy(&modules, &rth.modules, MAX_CONTENT_INSPECT_MODULE_COUNT * sizeof(ContentInspectModule));
401 return *this;
402 }
403 ContentInspectConfig() :extraInfo(NULL), serverConfig(NULL), moduleCount(0){}
404 };
405
406 namespace base {
407
408 typedef void* view_t;
409
410 typedef const char* user_id_t;
411
412 static const uint8_t kMaxCodecNameLength = 50;
413
418 struct PacketOptions {
422 uint32_t timestamp;
423 // Audio level indication.
424 uint8_t audioLevelIndication;
425 PacketOptions()
426 : timestamp(0),
427 audioLevelIndication(127) {}
428 };
429
434 struct AudioEncodedFrameInfo {
438 uint64_t sendTs;
442 uint8_t codec;
443 AudioEncodedFrameInfo()
444 : sendTs(0),
445 codec(0) {}
446 };
447
451 struct AudioPcmFrame {
455 OPTIONAL_ENUM_SIZE_T {
456 // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
463 kMaxDataSizeSamples = 3840,
465 kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
466 };
467
470 int64_t capture_timestamp;
473 size_t samples_per_channel_;
476 int sample_rate_hz_;
479 size_t num_channels_;
482 rtc::BYTES_PER_SAMPLE bytes_per_sample;
484 int16_t data_[kMaxDataSizeSamples];
485
486 AudioPcmFrame& operator=(const AudioPcmFrame& src) {
487 if(this == &src) {
488 return *this;
489 }
490
491 this->capture_timestamp = src.capture_timestamp;
492 this->samples_per_channel_ = src.samples_per_channel_;
493 this->sample_rate_hz_ = src.sample_rate_hz_;
494 this->bytes_per_sample = src.bytes_per_sample;
495 this->num_channels_ = src.num_channels_;
496
497 size_t length = src.samples_per_channel_ * src.num_channels_;
498 if (length > kMaxDataSizeSamples) {
499 length = kMaxDataSizeSamples;
500 }
501
502 memcpy(this->data_, src.data_, length * sizeof(int16_t));
503
504 return *this;
505 }
506
507 AudioPcmFrame()
508 : capture_timestamp(0),
509 samples_per_channel_(0),
510 sample_rate_hz_(0),
511 num_channels_(0),
512 bytes_per_sample(rtc::TWO_BYTES_PER_SAMPLE) {
513 memset(data_, 0, sizeof(data_));
514 }
515
516 AudioPcmFrame(const AudioPcmFrame& src)
517 : capture_timestamp(src.capture_timestamp),
518 samples_per_channel_(src.samples_per_channel_),
519 sample_rate_hz_(src.sample_rate_hz_),
520 num_channels_(src.num_channels_),
521 bytes_per_sample(src.bytes_per_sample) {
522 size_t length = src.samples_per_channel_ * src.num_channels_;
523 if (length > kMaxDataSizeSamples) {
524 length = kMaxDataSizeSamples;
525 }
526
527 memcpy(this->data_, src.data_, length * sizeof(int16_t));
528 }
529 };
530
533 enum AUDIO_DUAL_MONO_MODE {
535 AUDIO_DUAL_MONO_STEREO = 0,
537 AUDIO_DUAL_MONO_L = 1,
539 AUDIO_DUAL_MONO_R = 2,
541 AUDIO_DUAL_MONO_MIX = 3
542 };
543
547 enum VIDEO_PIXEL_FORMAT {
551 VIDEO_PIXEL_DEFAULT = 0,
555 VIDEO_PIXEL_I420 = 1,
559 VIDEO_PIXEL_BGRA = 2,
563 VIDEO_PIXEL_NV21 = 3,
567 VIDEO_PIXEL_RGBA = 4,
571 VIDEO_PIXEL_NV12 = 8,
575 VIDEO_TEXTURE_2D = 10,
579 VIDEO_TEXTURE_OES = 11,
580 /*
581 12: pixel format for iOS CVPixelBuffer NV12
582 */
583 VIDEO_CVPIXEL_NV12 = 12,
584 /*
585 13: pixel format for iOS CVPixelBuffer I420
586 */
587 VIDEO_CVPIXEL_I420 = 13,
588 /*
589 14: pixel format for iOS CVPixelBuffer BGRA
590 */
591 VIDEO_CVPIXEL_BGRA = 14,
595 VIDEO_PIXEL_I422 = 16,
599 VIDEO_TEXTURE_ID3D11TEXTURE2D = 17,
603 VIDEO_PIXEL_I010 = 18,
604 };
605
609 enum RENDER_MODE_TYPE {
614 RENDER_MODE_HIDDEN = 1,
620 RENDER_MODE_FIT = 2,
625 RENDER_MODE_ADAPTIVE __deprecated = 3,
626 };
627
631 enum CAMERA_VIDEO_SOURCE_TYPE {
635 CAMERA_SOURCE_FRONT = 0,
639 CAMERA_SOURCE_BACK = 1,
643 VIDEO_SOURCE_UNSPECIFIED = 2,
644 };
645
650 class IVideoFrameMetaInfo {
651 public:
652 enum META_INFO_KEY {
653 KEY_FACE_CAPTURE = 0,
654 };
655 virtual ~IVideoFrameMetaInfo() {};
656 virtual const char* getMetaInfoStr(META_INFO_KEY key) const = 0;
657 };
658
662 struct ExternalVideoFrame {
663 ExternalVideoFrame()
664 : type(VIDEO_BUFFER_RAW_DATA),
665 format(VIDEO_PIXEL_DEFAULT),
666 buffer(NULL),
667 stride(0),
668 height(0),
669 cropLeft(0),
670 cropTop(0),
671 cropRight(0),
672 cropBottom(0),
673 rotation(0),
674 timestamp(0),
675 eglContext(NULL),
676 eglType(EGL_CONTEXT10),
677 textureId(0),
678 metadata_buffer(NULL),
679 metadata_size(0),
680 alphaBuffer(NULL),
681 fillAlphaBuffer(false),
682 d3d11_texture_2d(NULL),
683 texture_slice_index(0){}
684
688 enum EGL_CONTEXT_TYPE {
692 EGL_CONTEXT10 = 0,
696 EGL_CONTEXT14 = 1,
697 };
698
702 enum VIDEO_BUFFER_TYPE {
706 VIDEO_BUFFER_RAW_DATA = 1,
710 VIDEO_BUFFER_ARRAY = 2,
714 VIDEO_BUFFER_TEXTURE = 3,
715 };
716
720 VIDEO_BUFFER_TYPE type;
724 VIDEO_PIXEL_FORMAT format;
728 void* buffer;
733 int stride;
737 int height;
742 int cropLeft;
747 int cropTop;
752 int cropRight;
757 int cropBottom;
762 int rotation;
770 long long timestamp;
776 void *eglContext;
780 EGL_CONTEXT_TYPE eglType;
784 int textureId;
788 float matrix[16];
793 uint8_t* metadata_buffer;
798 int metadata_size;
805 uint8_t* alphaBuffer;
811 bool fillAlphaBuffer;
812
816 void *d3d11_texture_2d;
817
821 int texture_slice_index;
822 };
823
827 struct VideoFrame {
828 VideoFrame():
829 type(VIDEO_PIXEL_DEFAULT),
830 width(0),
831 height(0),
832 yStride(0),
833 uStride(0),
834 vStride(0),
835 yBuffer(NULL),
836 uBuffer(NULL),
837 vBuffer(NULL),
838 rotation(0),
839 renderTimeMs(0),
840 avsync_type(0),
841 metadata_buffer(NULL),
842 metadata_size(0),
843 sharedContext(0),
844 textureId(0),
845 d3d11Texture2d(NULL),
846 alphaBuffer(NULL),
847 pixelBuffer(NULL),
848 metaInfo(NULL){
849 memset(matrix, 0, sizeof(matrix));
850 }
854 VIDEO_PIXEL_FORMAT type;
858 int width;
862 int height;
866 int yStride;
870 int uStride;
874 int vStride;
878 uint8_t* yBuffer;
882 uint8_t* uBuffer;
886 uint8_t* vBuffer;
890 int rotation;
897 int64_t renderTimeMs;
901 int avsync_type;
906 uint8_t* metadata_buffer;
911 int metadata_size;
915 void* sharedContext;
919 int textureId;
923 void* d3d11Texture2d;
927 float matrix[16];
934 uint8_t* alphaBuffer;
938 void* pixelBuffer;
942 IVideoFrameMetaInfo* metaInfo;
943 };
944
948 class IVideoFrameObserver {
949 public:
957 virtual void onFrame(const VideoFrame* frame) = 0;
958 virtual ~IVideoFrameObserver() {}
959 virtual bool isExternal() { return true; }
960 virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference() { return VIDEO_PIXEL_DEFAULT; }
961 };
962
963 enum MEDIA_PLAYER_SOURCE_TYPE {
969 MEDIA_PLAYER_SOURCE_DEFAULT,
975 MEDIA_PLAYER_SOURCE_FULL_FEATURED,
980 MEDIA_PLAYER_SOURCE_SIMPLE,
981 };
982
983 enum VIDEO_MODULE_POSITION {
984 POSITION_POST_CAPTURER = 1 << 0,
985 POSITION_PRE_RENDERER = 1 << 1,
986 POSITION_PRE_ENCODER = 1 << 2,
987 };
988
989 } // namespace base
990
994 class IAudioPcmFrameSink {
995 public:
1004 virtual void onFrame(agora::media::base::AudioPcmFrame* frame) = 0;
1005 virtual ~IAudioPcmFrameSink() {}
1006 };
1007
1011 class IAudioFrameObserverBase {
1012 public:
1016 enum AUDIO_FRAME_TYPE {
1020 FRAME_TYPE_PCM16 = 0,
1021 };
1022 enum { MAX_HANDLE_TIME_CNT = 10 };
1026 struct AudioFrame {
1030 AUDIO_FRAME_TYPE type;
1034 int samplesPerChannel;
1038 agora::rtc::BYTES_PER_SAMPLE bytesPerSample;
1044 int channels;
1048 int samplesPerSec;
1055 void* buffer;
1063 int64_t renderTimeMs;
1067 int avsync_type;
1075 int64_t presentationMs;
1079 int audioTrackNumber;
1083 uint32_t rtpTimestamp;
1084
1085 AudioFrame() : type(FRAME_TYPE_PCM16),
1086 samplesPerChannel(0),
1087 bytesPerSample(rtc::TWO_BYTES_PER_SAMPLE),
1088 channels(0),
1089 samplesPerSec(0),
1090 buffer(NULL),
1091 renderTimeMs(0),
1092 avsync_type(0),
1093 presentationMs(0),
1094 audioTrackNumber(0),
1095 rtpTimestamp(0) {}
1096 };
1097
1098 enum AUDIO_FRAME_POSITION {
1099 AUDIO_FRAME_POSITION_NONE = 0x0000,
1102 AUDIO_FRAME_POSITION_PLAYBACK = 0x0001,
1105 AUDIO_FRAME_POSITION_RECORD = 0x0002,
1108 AUDIO_FRAME_POSITION_MIXED = 0x0004,
1111 AUDIO_FRAME_POSITION_BEFORE_MIXING = 0x0008,
1114 AUDIO_FRAME_POSITION_EAR_MONITORING = 0x0010,
1115 };
1116
1117 struct AudioParams {
1126 int sample_rate;
1127
1128 /* The number of audio channels, which can be set as either of the following values:
1129
1130 - `1`: Mono (Default)
1131 - `2`: Stereo
1132 */
1133 int channels;
1134
1135 /* The use mode of the audio data. See AgoraAudioRawFrameOperationMode.
1136 */
1137 rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode;
1138
1142 int samples_per_call;
1143
1144 AudioParams() : sample_rate(0), channels(0), mode(rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY), samples_per_call(0) {}
1145 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) {}
1146 };
1147
1148 public:
1149 virtual ~IAudioFrameObserverBase() {}
1150
1159 virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1168 virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1177 virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
1185 virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
1195 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId, AudioFrame& audioFrame) {
1196 (void) channelId;
1197 (void) userId;
1198 (void) audioFrame;
1199 return true;
1200 }
1201
1217 virtual int getObservedAudioFramePosition() = 0;
1218
1230 virtual AudioParams getPlaybackAudioParams() = 0;
1231
1242 virtual AudioParams getRecordAudioParams() = 0;
1243
1254 virtual AudioParams getMixedAudioParams() = 0;
1255
1266 virtual AudioParams getEarMonitoringAudioParams() = 0;
1267 };
1268
1272 class IAudioFrameObserver : public IAudioFrameObserverBase {
1273 public:
1274 using IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing;
1284 virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid, AudioFrame& audioFrame) = 0;
1285 };
1286
1287 struct AudioSpectrumData {
1291 const float *audioSpectrumData;
1295 int dataLength;
1296
1297 AudioSpectrumData() : audioSpectrumData(NULL), dataLength(0) {}
1298 AudioSpectrumData(const float *data, int length) :
1299 audioSpectrumData(data), dataLength(length) {}
1300 };
1301
1302 struct UserAudioSpectrumInfo {
1306 agora::rtc::uid_t uid;
1310 struct AudioSpectrumData spectrumData;
1311
1312 UserAudioSpectrumInfo () : uid(0), spectrumData() {}
1313 UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length) :
1314 uid(_uid) { spectrumData.audioSpectrumData = data; spectrumData.dataLength = length; }
1315 };
1316
1320 class IAudioSpectrumObserver {
1321 public:
1322 virtual ~IAudioSpectrumObserver() {}
1323
1336 virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
1337
1355 virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo * spectrums, unsigned int spectrumNumber) = 0;
1356 };
1357
1361 class IVideoEncodedFrameObserver {
1362 public:
1373 virtual bool onEncodedVideoFrameReceived(rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
1374 const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
1375
1376 virtual ~IVideoEncodedFrameObserver() {}
1377 };
1378
1382 class IVideoFrameObserver {
1383 public:
1384 typedef media::base::VideoFrame VideoFrame;
1388 enum VIDEO_FRAME_PROCESS_MODE {
1394 PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original frame.
1400 PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and affect the following frame processing in SDK.
1401 };
1402
1403 public:
1404 virtual ~IVideoFrameObserver() {}
1405
1426 virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame& videoFrame) = 0;
1427
1449 virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame& videoFrame) = 0;
1450
1471 virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
1472
1492 virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame) = 0;
1493
1494 virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
1495
1503 virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode() {
1504 return PROCESS_MODE_READ_ONLY;
1505 }
1506
1521 virtual base::VIDEO_PIXEL_FORMAT getVideoFormatPreference() { return base::VIDEO_PIXEL_DEFAULT; }
1522
1537 virtual bool getRotationApplied() { return false; }
1538
1553 virtual bool getMirrorApplied() { return false; }
1554
1572 virtual uint32_t getObservedFramePosition() {
1573 return base::POSITION_POST_CAPTURER | base::POSITION_PRE_RENDERER;
1574 }
1575
1583 virtual bool isExternal() { return true; }
1584 };
1585
1589 enum EXTERNAL_VIDEO_SOURCE_TYPE {
1593 VIDEO_FRAME = 0,
1597 ENCODED_VIDEO_FRAME,
1598 };
1599
1605 enum MediaRecorderContainerFormat {
1609 FORMAT_MP4 = 1,
1610 };
1616 enum MediaRecorderStreamType {
1620 STREAM_TYPE_AUDIO = 0x01,
1624 STREAM_TYPE_VIDEO = 0x02,
1628 STREAM_TYPE_BOTH = STREAM_TYPE_AUDIO | STREAM_TYPE_VIDEO,
1629 };
1635 enum RecorderState {
1639 RECORDER_STATE_ERROR = -1,
1643 RECORDER_STATE_START = 2,
1647 RECORDER_STATE_STOP = 3,
1648 };
1654 enum RecorderErrorCode {
1658 RECORDER_ERROR_NONE = 0,
1662 RECORDER_ERROR_WRITE_FAILED = 1,
1666 RECORDER_ERROR_NO_STREAM = 2,
1670 RECORDER_ERROR_OVER_MAX_DURATION = 3,
1674 RECORDER_ERROR_CONFIG_CHANGED = 4,
1675 };
1681 struct MediaRecorderConfiguration {
1690 const char* storagePath;
1694 MediaRecorderContainerFormat containerFormat;
1698 MediaRecorderStreamType streamType;
1702 int maxDurationMs;
1709 int recorderInfoUpdateInterval;
1710
1711 MediaRecorderConfiguration() : storagePath(NULL), containerFormat(FORMAT_MP4), streamType(STREAM_TYPE_BOTH), maxDurationMs(120000), recorderInfoUpdateInterval(0) {}
1712 MediaRecorderConfiguration(const char* path, MediaRecorderContainerFormat format, MediaRecorderStreamType type, int duration, int interval) : storagePath(path), containerFormat(format), streamType(type), maxDurationMs(duration), recorderInfoUpdateInterval(interval) {}
1713 };
1714
1715 class IFaceInfoObserver {
1716 public:
1724 virtual bool onFaceInfo(const char* outFaceInfo) = 0;
1725
1726 virtual ~IFaceInfoObserver() {}
1727 };
1728
1734 struct RecorderInfo {
1738 const char* fileName;
1742 unsigned int durationMs;
1746 unsigned int fileSize;
1747
1748 RecorderInfo() : fileName(NULL), durationMs(0), fileSize(0) {}
1749 RecorderInfo(const char* name, unsigned int dur, unsigned int size) : fileName(name), durationMs(dur), fileSize(size) {}
1750 };
1751
1752
1753 class IMediaRecorderObserver {
1754 public:
1768 virtual void onRecorderStateChanged(const char* channelId, rtc::uid_t uid, RecorderState state, RecorderErrorCode error) = 0;
1783 virtual void onRecorderInfoUpdated(const char* channelId, rtc::uid_t uid, const RecorderInfo& info) = 0;
1784 virtual ~IMediaRecorderObserver() {}
1785 };
1786 } // namespace media
1787 } // namespace agora
agora::rtc::VIDEO_SOURCE_RTC_IMAGE_JPEG
@ VIDEO_SOURCE_RTC_IMAGE_JPEG
Definition: AgoraMediaBase.h:74
agora::media::MediaRecorderConfiguration::MediaRecorderConfiguration
MediaRecorderConfiguration()
Definition: AgoraMediaBase.h:1711
agora::media::IFaceInfoObserver::~IFaceInfoObserver
virtual ~IFaceInfoObserver()
Definition: AgoraMediaBase.h:1726
agora::media::IAudioFrameObserverBase::FRAME_TYPE_PCM16
@ FRAME_TYPE_PCM16
Definition: AgoraMediaBase.h:1020
agora::media::MediaRecorderConfiguration::MediaRecorderConfiguration
MediaRecorderConfiguration(const char *path, MediaRecorderContainerFormat format, MediaRecorderStreamType type, int duration, int interval)
Definition: AgoraMediaBase.h:1712
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:827
agora::media::ContentInspectModule::type
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:370
agora::media::MediaRecorderConfiguration::containerFormat
MediaRecorderContainerFormat containerFormat
Definition: AgoraMediaBase.h:1694
agora::media::base::ExternalVideoFrame::EGL_CONTEXT_TYPE
EGL_CONTEXT_TYPE
Definition: AgoraMediaBase.h:688
agora::media::base::VideoFrame::vBuffer
uint8_t * vBuffer
Definition: AgoraMediaBase.h:886
agora::media::base::MEDIA_PLAYER_SOURCE_FULL_FEATURED
@ MEDIA_PLAYER_SOURCE_FULL_FEATURED
Definition: AgoraMediaBase.h:975
agora::media::base::VideoFrame::yStride
int yStride
Definition: AgoraMediaBase.h:866
agora::media::base::IVideoFrameObserver::onFrame
virtual void onFrame(const VideoFrame *frame)=0
agora::rtc::AudioParameters::AudioParameters
AudioParameters()
Definition: AgoraMediaBase.h:178
agora::media::IMediaRecorderObserver::onRecorderInfoUpdated
virtual void onRecorderInfoUpdated(const char *channelId, rtc::uid_t uid, const RecorderInfo &info)=0
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
Definition: AgoraMediaBase.h:983
agora::rtc::VIDEO_SOURCE_TYPE
VIDEO_SOURCE_TYPE
Definition: AgoraMediaBase.h:48
agora::media::base::ExternalVideoFrame::cropTop
int cropTop
Definition: AgoraMediaBase.h:747
agora::media::IAudioPcmFrameSink
Definition: AgoraMediaBase.h:994
agora::rtc::VIDEO_SOURCE_TRANSCODED
@ VIDEO_SOURCE_TRANSCODED
Definition: AgoraMediaBase.h:83
agora::media::base::VIDEO_TEXTURE_ID3D11TEXTURE2D
@ VIDEO_TEXTURE_ID3D11TEXTURE2D
Definition: AgoraMediaBase.h:599
agora::media::RECORDER_ERROR_NONE
@ RECORDER_ERROR_NONE
Definition: AgoraMediaBase.h:1658
agora::media::IMediaRecorderObserver
Definition: AgoraMediaBase.h:1753
agora::media::VIDEO_FRAME
@ VIDEO_FRAME
Definition: AgoraMediaBase.h:1593
agora::media::IAudioFrameObserverBase
Definition: AgoraMediaBase.h:1011
agora::rtc::video_track_id_t
unsigned int video_track_id_t
Definition: AgoraMediaBase.h:32
agora::media::base::VIDEO_CVPIXEL_I420
@ VIDEO_CVPIXEL_I420
Definition: AgoraMediaBase.h:587
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
@ RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
Definition: AgoraMediaBase.h:196
agora::media::MediaRecorderConfiguration::recorderInfoUpdateInterval
int recorderInfoUpdateInterval
Definition: AgoraMediaBase.h:1709
agora::media::IFaceInfoObserver
Definition: AgoraMediaBase.h:1715
agora::media::base::AUDIO_DUAL_MONO_MODE
AUDIO_DUAL_MONO_MODE
Definition: AgoraMediaBase.h:533
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData(const float *data, int length)
Definition: AgoraMediaBase.h:1298
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:29
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_NONE
@ AUDIO_FRAME_POSITION_NONE
Definition: AgoraMediaBase.h:1099
agora::media::IAudioFrameObserverBase::onMixedAudioFrame
virtual bool onMixedAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::rtc::ROUTE_CONTINUITY
@ ROUTE_CONTINUITY
Definition: AgoraMediaBase.h:160
agora::media::ContentInspectConfig::serverConfig
const char * serverConfig
Definition: AgoraMediaBase.h:387
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1320
agora::media::IAudioFrameObserverBase::MAX_HANDLE_TIME_CNT
@ MAX_HANDLE_TIME_CNT
Definition: AgoraMediaBase.h:1022
agora::media::CONTENT_INSPECT_PORN
@ CONTENT_INSPECT_PORN
Definition: AgoraMediaBase.h:343
agora::rtc::VIDEO_SOURCE_SPEECH_DRIVEN
@ VIDEO_SOURCE_SPEECH_DRIVEN
Definition: AgoraMediaBase.h:99
agora::rtc::AudioParameters
Definition: AgoraMediaBase.h:173
agora::media::base::RENDER_MODE_HIDDEN
@ RENDER_MODE_HIDDEN
Definition: AgoraMediaBase.h:614
agora::media::IAudioFrameObserverBase::AudioFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:1067
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_BEFORE_MIXING
@ AUDIO_FRAME_POSITION_BEFORE_MIXING
Definition: AgoraMediaBase.h:1111
agora::media::base::ExternalVideoFrame::format
VIDEO_PIXEL_FORMAT format
Definition: AgoraMediaBase.h:724
agora::rtc::AudioDeviceInfo::AudioDeviceInfo
AudioDeviceInfo()
Definition: AgoraMediaBase.h:245
agora::media::RECORDER_ERROR_WRITE_FAILED
@ RECORDER_ERROR_WRITE_FAILED
Definition: AgoraMediaBase.h:1662
agora::media::IMediaRecorderObserver::onRecorderStateChanged
virtual void onRecorderStateChanged(const char *channelId, rtc::uid_t uid, RecorderState state, RecorderErrorCode error)=0
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1565
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:948
agora::media::CONTENT_INSPECT_SEXY
@ CONTENT_INSPECT_SEXY
Definition: AgoraMediaBase.h:342
agora::media::base::PacketOptions::timestamp
uint32_t timestamp
Definition: AgoraMediaBase.h:422
agora::media::base::IVideoFrameMetaInfo::~IVideoFrameMetaInfo
virtual ~IVideoFrameMetaInfo()
Definition: AgoraMediaBase.h:655
agora::media::base::VIDEO_PIXEL_I010
@ VIDEO_PIXEL_I010
Definition: AgoraMediaBase.h:603
agora::media::base::VideoFrame::width
int width
Definition: AgoraMediaBase.h:858
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1382
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_RECORD
@ AUDIO_FRAME_POSITION_RECORD
Definition: AgoraMediaBase.h:1105
agora::media::AudioSpectrumData::dataLength
int dataLength
Definition: AgoraMediaBase.h:1295
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_MIXED
@ AUDIO_FRAME_POSITION_MIXED
Definition: AgoraMediaBase.h:1108
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:1026
agora::rtc::AudioRoute
AudioRoute
Definition: AgoraMediaBase.h:108
agora::rtc::ROUTE_EARPIECE
@ ROUTE_EARPIECE
Definition: AgoraMediaBase.h:120
agora::rtc::TRACK_AUDIO_MIXED_LOCAL
@ TRACK_AUDIO_MIXED_LOCAL
Definition: AgoraMediaBase.h:206
agora::media::base::ExternalVideoFrame::height
int height
Definition: AgoraMediaBase.h:737
agora::rtc::INVALID_TRACK_ID
static const unsigned int INVALID_TRACK_ID
Definition: AgoraMediaBase.h:34
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:1272
agora::media::RecorderInfo::fileSize
unsigned int fileSize
Definition: AgoraMediaBase.h:1746
agora::media::base::AudioEncodedFrameInfo::codec
uint8_t codec
Definition: AgoraMediaBase.h:442
agora::media::base::ExternalVideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:762
agora::media::base::VIDEO_PIXEL_NV12
@ VIDEO_PIXEL_NV12
Definition: AgoraMediaBase.h:571
agora::media::base::ExternalVideoFrame::cropRight
int cropRight
Definition: AgoraMediaBase.h:752
agora::media::base::VIDEO_PIXEL_I422
@ VIDEO_PIXEL_I422
Definition: AgoraMediaBase.h:595
agora::rtc::VIDEO_SOURCE_SCREEN_PRIMARY
@ VIDEO_SOURCE_SCREEN_PRIMARY
Definition: AgoraMediaBase.h:58
agora::media::base::ExternalVideoFrame::eglType
EGL_CONTEXT_TYPE eglType
Definition: AgoraMediaBase.h:780
agora::media::MediaRecorderConfiguration::streamType
MediaRecorderStreamType streamType
Definition: AgoraMediaBase.h:1698
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TEXTURE
@ VIDEO_BUFFER_TEXTURE
Definition: AgoraMediaBase.h:714
agora::media::IAudioPcmFrameSink::~IAudioPcmFrameSink
virtual ~IAudioPcmFrameSink()
Definition: AgoraMediaBase.h:1005
agora::media::PRIMARY_CAMERA_SOURCE
@ PRIMARY_CAMERA_SOURCE
Definition: AgoraMediaBase.h:287
agora::media::base::RENDER_MODE_FIT
@ RENDER_MODE_FIT
Definition: AgoraMediaBase.h:620
agora::rtc::TWO_BYTES_PER_SAMPLE
@ TWO_BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:170
agora::media::CONTENT_INSPECT_INVALID
@ CONTENT_INSPECT_INVALID
Definition: AgoraMediaBase.h:350
agora::media::IAudioFrameObserverBase::AudioFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:1055
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_ONLY
@ PROCESS_MODE_READ_ONLY
Definition: AgoraMediaBase.h:1394
agora::rtc::ROUTE_HEADSETNOMIC
@ ROUTE_HEADSETNOMIC
Definition: AgoraMediaBase.h:124
agora::media::base::ExternalVideoFrame::cropBottom
int cropBottom
Definition: AgoraMediaBase.h:757
agora::media::RecorderState
RecorderState
Definition: AgoraMediaBase.h:1635
agora::rtc::VIDEO_SOURCE_CAMERA
@ VIDEO_SOURCE_CAMERA
Definition: AgoraMediaBase.h:52
agora::media::base::ExternalVideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:793
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_RAW_DATA
@ VIDEO_BUFFER_RAW_DATA
Definition: AgoraMediaBase.h:706
agora::media::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:1583
agora::media::base::POSITION_PRE_ENCODER
@ POSITION_PRE_ENCODER
Definition: AgoraMediaBase.h:986
agora::media::AUDIO_RECORDING_SOURCE
@ AUDIO_RECORDING_SOURCE
Definition: AgoraMediaBase.h:283
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_PLAYBACK
@ AUDIO_FRAME_POSITION_PLAYBACK
Definition: AgoraMediaBase.h:1102
agora::media::base::VideoFrame::yBuffer
uint8_t * yBuffer
Definition: AgoraMediaBase.h:878
agora::media::base::VIDEO_PIXEL_NV21
@ VIDEO_PIXEL_NV21
Definition: AgoraMediaBase.h:563
agora::rtc::ROUTE_DISPLAYPORT
@ ROUTE_DISPLAYPORT
Definition: AgoraMediaBase.h:148
agora::media::IVideoEncodedFrameObserver::onEncodedVideoFrameReceived
virtual bool onEncodedVideoFrameReceived(rtc::uid_t uid, const uint8_t *imageBuffer, size_t length, const rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
agora
Definition: AgoraAtomicOps.h:21
agora::media::MediaRecorderStreamType
MediaRecorderStreamType
Definition: AgoraMediaBase.h:1616
agora::media::ContentInspectModule::interval
unsigned int interval
Definition: AgoraMediaBase.h:374
agora::media::base::MEDIA_PLAYER_SOURCE_SIMPLE
@ MEDIA_PLAYER_SOURCE_SIMPLE
Definition: AgoraMediaBase.h:980
agora::rtc::kAdmMaxGuidSize
static const int kAdmMaxGuidSize
Definition: AgoraMediaBase.h:39
agora::media::base::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:959
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, base::user_id_t userId, AudioFrame &audioFrame)
Definition: AgoraMediaBase.h:1195
agora::rtc::AudioParameters::channels
size_t channels
Definition: AgoraMediaBase.h:175
agora::rtc::VIDEO_SOURCE_CAMERA_PRIMARY
@ VIDEO_SOURCE_CAMERA_PRIMARY
Definition: AgoraMediaBase.h:51
agora::media::RECORDER_ERROR_NO_STREAM
@ RECORDER_ERROR_NO_STREAM
Definition: AgoraMediaBase.h:1666
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TYPE
VIDEO_BUFFER_TYPE
Definition: AgoraMediaBase.h:702
agora::media::CONTENT_INSPECT_NEUTRAL
@ CONTENT_INSPECT_NEUTRAL
Definition: AgoraMediaBase.h:341
agora::media::base::RENDER_MODE_ADAPTIVE
@ RENDER_MODE_ADAPTIVE
Definition: AgoraMediaBase.h:625
agora::media::ContentInspectModule
Definition: AgoraMediaBase.h:366
agora::media::base::ExternalVideoFrame::EGL_CONTEXT10
@ EGL_CONTEXT10
Definition: AgoraMediaBase.h:692
agora::media::base::ExternalVideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:798
agora::media::base::ExternalVideoFrame::d3d11_texture_2d
void * d3d11_texture_2d
Definition: AgoraMediaBase.h:816
agora::media::ContentInspectConfig::moduleCount
int moduleCount
Definition: AgoraMediaBase.h:394
agora::media::base::VideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:890
agora::media::MediaRecorderContainerFormat
MediaRecorderContainerFormat
Definition: AgoraMediaBase.h:1605
agora::media::AUDIO_PLAYOUT_SOURCE
@ AUDIO_PLAYOUT_SOURCE
Definition: AgoraMediaBase.h:279
agora::media::base::VideoFrame::height
int height
Definition: AgoraMediaBase.h:862
agora::media::IAudioFrameObserverBase::AudioFrame::channels
int channels
Definition: AgoraMediaBase.h:1044
agora::rtc::ROUTE_HEADSETBLUETOOTH
@ ROUTE_HEADSETBLUETOOTH
Definition: AgoraMediaBase.h:136
agora::media::base::PacketOptions::audioLevelIndication
uint8_t audioLevelIndication
Definition: AgoraMediaBase.h:424
agora::media::IAudioFrameObserverBase::~IAudioFrameObserverBase
virtual ~IAudioFrameObserverBase()
Definition: AgoraMediaBase.h:1149
agora::media::IVideoFrameObserver::VideoFrame
media::base::VideoFrame VideoFrame
Definition: AgoraMediaBase.h:1384
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:662
agora::media::base::AudioPcmFrame::AudioPcmFrame
AudioPcmFrame(const AudioPcmFrame &src)
Definition: AgoraMediaBase.h:516
agora::media::RECORDER_ERROR_CONFIG_CHANGED
@ RECORDER_ERROR_CONFIG_CHANGED
Definition: AgoraMediaBase.h:1674
agora::media::base::AudioPcmFrame::capture_timestamp
int64_t capture_timestamp
Definition: AgoraMediaBase.h:470
agora::rtc::VIDEO_SOURCE_UNKNOWN
@ VIDEO_SOURCE_UNKNOWN
Definition: AgoraMediaBase.h:101
agora::media::base::ExternalVideoFrame::timestamp
long long timestamp
Definition: AgoraMediaBase.h:770
agora::media::base::VIDEO_PIXEL_BGRA
@ VIDEO_PIXEL_BGRA
Definition: AgoraMediaBase.h:559
agora::rtc::ROUTE_HDMI
@ ROUTE_HDMI
Definition: AgoraMediaBase.h:144
agora::media::IAudioFrameObserverBase::AudioFrame::AudioFrame
AudioFrame()
Definition: AgoraMediaBase.h:1085
agora::media::IVideoFrameObserver::onTranscodedVideoFrame
virtual bool onTranscodedVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::VideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:919
agora::media::IAudioSpectrumObserver::onLocalAudioSpectrum
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
agora::rtc::VIDEO_SOURCE_CAMERA_FOURTH
@ VIDEO_SOURCE_CAMERA_FOURTH
Definition: AgoraMediaBase.h:90
agora::media::RecorderInfo::RecorderInfo
RecorderInfo(const char *name, unsigned int dur, unsigned int size)
Definition: AgoraMediaBase.h:1749
agora::media::IAudioFrameObserverBase::AudioFrame::audioTrackNumber
int audioTrackNumber
Definition: AgoraMediaBase.h:1079
agora::media::RECORDER_STATE_ERROR
@ RECORDER_STATE_ERROR
Definition: AgoraMediaBase.h:1639
agora::media::CONTENT_INSPECT_MODERATION
@ CONTENT_INSPECT_MODERATION
Definition: AgoraMediaBase.h:355
agora::media::base::VIDEO_CVPIXEL_BGRA
@ VIDEO_CVPIXEL_BGRA
Definition: AgoraMediaBase.h:591
agora::media::IAudioSpectrumObserver::onRemoteAudioSpectrum
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
agora::media::base::AudioEncodedFrameInfo::AudioEncodedFrameInfo
AudioEncodedFrameInfo()
Definition: AgoraMediaBase.h:443
agora::media::IAudioFrameObserverBase::getObservedAudioFramePosition
virtual int getObservedAudioFramePosition()=0
agora::media::base::PacketOptions::PacketOptions
PacketOptions()
Definition: AgoraMediaBase.h:425
agora::media::base::CAMERA_VIDEO_SOURCE_TYPE
CAMERA_VIDEO_SOURCE_TYPE
Definition: AgoraMediaBase.h:631
agora::media::base::VideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:906
agora::media::RecorderInfo::RecorderInfo
RecorderInfo()
Definition: AgoraMediaBase.h:1748
MAX_CONTENT_INSPECT_MODULE_COUNT
#define MAX_CONTENT_INSPECT_MODULE_COUNT
Definition: AgoraMediaBase.h:339
agora::media::base::VIDEO_TEXTURE_OES
@ VIDEO_TEXTURE_OES
Definition: AgoraMediaBase.h:579
agora::media::UNKNOWN_MEDIA_SOURCE
@ UNKNOWN_MEDIA_SOURCE
Definition: AgoraMediaBase.h:335
agora::media::SECONDARY_SCREEN_SOURCE
@ SECONDARY_SCREEN_SOURCE
Definition: AgoraMediaBase.h:299
agora::media::base::VideoFrame::pixelBuffer
void * pixelBuffer
Definition: AgoraMediaBase.h:938
agora::media::RecorderInfo
Definition: AgoraMediaBase.h:1734
agora::rtc::VIDEO_SOURCE_MEDIA_PLAYER
@ VIDEO_SOURCE_MEDIA_PLAYER
Definition: AgoraMediaBase.h:68
agora::media::base::AudioPcmFrame::samples_per_channel_
size_t samples_per_channel_
Definition: AgoraMediaBase.h:473
agora::media::CUSTOM_VIDEO_SOURCE
@ CUSTOM_VIDEO_SOURCE
Definition: AgoraMediaBase.h:303
agora::media::IVideoFrameObserver::onPreEncodeVideoFrame
virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
agora::media::IVideoFrameObserver::VIDEO_FRAME_PROCESS_MODE
VIDEO_FRAME_PROCESS_MODE
Definition: AgoraMediaBase.h:1388
agora::rtc::kAdmMaxDeviceNameSize
static const int kAdmMaxDeviceNameSize
Definition: AgoraMediaBase.h:38
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:418
agora::media::base::AudioPcmFrame::OPTIONAL_ENUM_SIZE_T
OPTIONAL_ENUM_SIZE_T
Definition: AgoraMediaBase.h:455
agora::media::base::ExternalVideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:784
agora::media::base::VIDEO_TEXTURE_2D
@ VIDEO_TEXTURE_2D
Definition: AgoraMediaBase.h:575
agora::media::base::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:958
agora::rtc::conn_id_t
unsigned int conn_id_t
Definition: AgoraMediaBase.h:31
agora::media::base::VideoFrame::matrix
float matrix[16]
Definition: AgoraMediaBase.h:927
agora::media::RTC_IMAGE_PNG_SOURCE
@ RTC_IMAGE_PNG_SOURCE
Definition: AgoraMediaBase.h:311
agora::media::base::VideoFrame::vStride
int vStride
Definition: AgoraMediaBase.h:874
agora::rtc::VIDEO_SOURCE_SCREEN_FOURTH
@ VIDEO_SOURCE_SCREEN_FOURTH
Definition: AgoraMediaBase.h:96
agora::media::ContentInspectModule::ContentInspectModule
ContentInspectModule()
Definition: AgoraMediaBase.h:375
agora::media::AudioSpectrumData::audioSpectrumData
const float * audioSpectrumData
Definition: AgoraMediaBase.h:1291
agora::media::base::ExternalVideoFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:728
agora::media::ContentInspectConfig::operator=
ContentInspectConfig & operator=(const ContentInspectConfig &rth)
Definition: AgoraMediaBase.h:395
agora::media::CONTENT_INSPECT_IMAGE_MODERATION
@ CONTENT_INSPECT_IMAGE_MODERATION
Definition: AgoraMediaBase.h:363
agora::media::MediaRecorderConfiguration::maxDurationMs
int maxDurationMs
Definition: AgoraMediaBase.h:1702
agora::media::base::VideoFrame::VideoFrame
VideoFrame()
Definition: AgoraMediaBase.h:828
agora::rtc::ROUTE_VIRTUAL
@ ROUTE_VIRTUAL
Definition: AgoraMediaBase.h:156
agora::media::base::VideoFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:897
agora::media::UserAudioSpectrumInfo
Definition: AgoraMediaBase.h:1302
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:609
agora::media::base::AUDIO_DUAL_MONO_MIX
@ AUDIO_DUAL_MONO_MIX
Definition: AgoraMediaBase.h:541
agora::rtc::AudioParameters::sample_rate
int sample_rate
Definition: AgoraMediaBase.h:174
agora::media::IMediaRecorderObserver::~IMediaRecorderObserver
virtual ~IMediaRecorderObserver()
Definition: AgoraMediaBase.h:1784
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_TYPE
AUDIO_FRAME_TYPE
Definition: AgoraMediaBase.h:1016
agora::rtc::AudioDeviceInfo::operator=
AudioDeviceInfo & operator=(const AudioDeviceInfo &other)
Definition: AgoraMediaBase.h:259
agora::media::base::user_id_t
const char * user_id_t
Definition: AgoraMediaBase.h:410
agora::media::base::ExternalVideoFrame::stride
int stride
Definition: AgoraMediaBase.h:733
agora::rtc::VIDEO_SOURCE_SCREEN_SECONDARY
@ VIDEO_SOURCE_SCREEN_SECONDARY
Definition: AgoraMediaBase.h:62
agora::media::IVideoFrameObserver::onCaptureVideoFrame
virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame &videoFrame)=0
agora::rtc::AudioDeviceInfo::deviceId
char deviceId[kAdmMaxGuidSize]
Definition: AgoraMediaBase.h:226
agora::media::IVideoFrameObserver::getVideoFrameProcessMode
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Definition: AgoraMediaBase.h:1503
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition: AgoraMediaBase.h:191
agora::media::IVideoFrameObserver::getMirrorApplied
virtual bool getMirrorApplied()
Definition: AgoraMediaBase.h:1553
agora::media::IAudioFrameObserverBase::AudioFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:1063
agora::rtc::AudioDeviceInfo::deviceName
char deviceName[kAdmMaxDeviceNameSize]
Definition: AgoraMediaBase.h:222
agora::media::CONTENT_INSPECT_RESULT
CONTENT_INSPECT_RESULT
Definition: AgoraMediaBase.h:340
agora::rtc::VIDEO_SOURCE_SCREEN_THIRD
@ VIDEO_SOURCE_SCREEN_THIRD
Definition: AgoraMediaBase.h:93
agora::rtc::VIDEO_SOURCE_SCREEN
@ VIDEO_SOURCE_SCREEN
Definition: AgoraMediaBase.h:59
agora::media::base::ExternalVideoFrame::fillAlphaBuffer
bool fillAlphaBuffer
Definition: AgoraMediaBase.h:811
agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition: AgoraMediaBase.h:969
agora::media::base::VideoFrame::alphaBuffer
uint8_t * alphaBuffer
Definition: AgoraMediaBase.h:934
agora::media::RecorderInfo::durationMs
unsigned int durationMs
Definition: AgoraMediaBase.h:1742
agora::media::IAudioPcmFrameSink::onFrame
virtual void onFrame(agora::media::base::AudioPcmFrame *frame)=0
agora::media::RecorderInfo::fileName
const char * fileName
Definition: AgoraMediaBase.h:1738
agora::media::IVideoFrameObserver::getObservedFramePosition
virtual uint32_t getObservedFramePosition()
Definition: AgoraMediaBase.h:1572
agora::rtc::VIDEO_SOURCE_RTC_IMAGE_PNG
@ VIDEO_SOURCE_RTC_IMAGE_PNG
Definition: AgoraMediaBase.h:71
agora::media::IAudioFrameObserverBase::AudioFrame::type
AUDIO_FRAME_TYPE type
Definition: AgoraMediaBase.h:1030
agora::rtc::BYTES_PER_SAMPLE
BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:166
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: AgoraMediaBase.h:187
agora::media::UserAudioSpectrumInfo::spectrumData
struct AudioSpectrumData spectrumData
Definition: AgoraMediaBase.h:1310
agora::media::base::VIDEO_SOURCE_UNSPECIFIED
@ VIDEO_SOURCE_UNSPECIFIED
Definition: AgoraMediaBase.h:643
agora::rtc::AudioDeviceInfo::AudioDeviceInfo
AudioDeviceInfo(const AudioDeviceInfo &other)
Definition: AgoraMediaBase.h:252
agora::rtc::ROUTE_AIRPLAY
@ ROUTE_AIRPLAY
Definition: AgoraMediaBase.h:152
agora::media::base::VideoFrame::uStride
int uStride
Definition: AgoraMediaBase.h:870
agora::media::ContentInspectConfig::ContentInspectConfig
ContentInspectConfig()
Definition: AgoraMediaBase.h:403
agora::media::base::VideoFrame::d3d11Texture2d
void * d3d11Texture2d
Definition: AgoraMediaBase.h:923
agora::rtc::TRACK_AUDIO_MIXED_REMOTE
@ TRACK_AUDIO_MIXED_REMOTE
Definition: AgoraMediaBase.h:209
agora::media::STREAM_TYPE_VIDEO
@ STREAM_TYPE_VIDEO
Definition: AgoraMediaBase.h:1624
agora::media::IAudioFrameObserverBase::AudioFrame::presentationMs
int64_t presentationMs
Definition: AgoraMediaBase.h:1075
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerChannel
int samplesPerChannel
Definition: AgoraMediaBase.h:1034
agora::rtc::ROUTE_DEFAULT
@ ROUTE_DEFAULT
Definition: AgoraMediaBase.h:112
agora::media::RECORDER_STATE_START
@ RECORDER_STATE_START
Definition: AgoraMediaBase.h:1643
agora::rtc::AudioDeviceInfo::isCurrentSelected
bool isCurrentSelected
Definition: AgoraMediaBase.h:232
agora::media::MediaRecorderConfiguration
Definition: AgoraMediaBase.h:1681
agora::media::base::AUDIO_DUAL_MONO_L
@ AUDIO_DUAL_MONO_L
Definition: AgoraMediaBase.h:537
agora::media::IVideoFrameObserver::onRenderVideoFrame
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION
AUDIO_FRAME_POSITION
Definition: AgoraMediaBase.h:1098
agora::rtc::DEFAULT_CONNECTION_ID
static const unsigned int DEFAULT_CONNECTION_ID
Definition: AgoraMediaBase.h:35
agora::media::base::AudioPcmFrame::num_channels_
size_t num_channels_
Definition: AgoraMediaBase.h:479
agora::rtc::ROUTE_HEADSET
@ ROUTE_HEADSET
Definition: AgoraMediaBase.h:116
agora::media::EXTERNAL_VIDEO_SOURCE_TYPE
EXTERNAL_VIDEO_SOURCE_TYPE
Definition: AgoraMediaBase.h:1589
agora::rtc::VIDEO_SOURCE_REMOTE
@ VIDEO_SOURCE_REMOTE
Definition: AgoraMediaBase.h:80
agora::media::RECORDER_ERROR_OVER_MAX_DURATION
@ RECORDER_ERROR_OVER_MAX_DURATION
Definition: AgoraMediaBase.h:1670
agora::media::base::VideoFrame::sharedContext
void * sharedContext
Definition: AgoraMediaBase.h:915
agora::media::CONTENT_INSPECT_TYPE
CONTENT_INSPECT_TYPE
Definition: AgoraMediaBase.h:346
agora::media::base::CAMERA_SOURCE_BACK
@ CAMERA_SOURCE_BACK
Definition: AgoraMediaBase.h:639
agora::media::base::IVideoFrameMetaInfo::META_INFO_KEY
META_INFO_KEY
Definition: AgoraMediaBase.h:652
agora::rtc::AudioDeviceInfo::routing
AudioRoute routing
Definition: AgoraMediaBase.h:243
agora::media::base::CAMERA_SOURCE_FRONT
@ CAMERA_SOURCE_FRONT
Definition: AgoraMediaBase.h:635
agora::media::RECORDER_STATE_STOP
@ RECORDER_STATE_STOP
Definition: AgoraMediaBase.h:1647
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrame
virtual bool onPlaybackAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::rtc::VIDEO_SOURCE_CUSTOM
@ VIDEO_SOURCE_CUSTOM
Definition: AgoraMediaBase.h:65
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData()
Definition: AgoraMediaBase.h:1297
agora::media::base::kMaxCodecNameLength
static const uint8_t kMaxCodecNameLength
Definition: AgoraMediaBase.h:412
agora::media::base::AUDIO_DUAL_MONO_STEREO
@ AUDIO_DUAL_MONO_STEREO
Definition: AgoraMediaBase.h:535
agora::media::IAudioFrameObserverBase::AudioFrame::rtpTimestamp
uint32_t rtpTimestamp
Definition: AgoraMediaBase.h:1083
agora::media::base::ExternalVideoFrame::ExternalVideoFrame
ExternalVideoFrame()
Definition: AgoraMediaBase.h:663
agora::media::IAudioSpectrumObserver::~IAudioSpectrumObserver
virtual ~IAudioSpectrumObserver()
Definition: AgoraMediaBase.h:1322
agora::rtc::ROUTE_SPEAKERPHONE
@ ROUTE_SPEAKERPHONE
Definition: AgoraMediaBase.h:128
agora::media::AudioSpectrumData
Definition: AgoraMediaBase.h:1287
agora::media::IAudioFrameObserverBase::onRecordAudioFrame
virtual bool onRecordAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::media::base::IVideoFrameObserver::getVideoFormatPreference
virtual VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Definition: AgoraMediaBase.h:960
agora::media::STREAM_TYPE_AUDIO
@ STREAM_TYPE_AUDIO
Definition: AgoraMediaBase.h:1620
agora::media::MEDIA_SOURCE_TYPE
MEDIA_SOURCE_TYPE
Definition: AgoraMediaBase.h:275
agora::rtc::ROUTE_USB
@ ROUTE_USB
Definition: AgoraMediaBase.h:140
agora::media::RecorderErrorCode
RecorderErrorCode
Definition: AgoraMediaBase.h:1654
agora::media::IFaceInfoObserver::onFaceInfo
virtual bool onFaceInfo(const char *outFaceInfo)=0
agora::media::base::ExternalVideoFrame::cropLeft
int cropLeft
Definition: AgoraMediaBase.h:742
agora::rtc::DUMMY_CONNECTION_ID
static const unsigned int DUMMY_CONNECTION_ID
Definition: AgoraMediaBase.h:36
agora::media::base::POSITION_PRE_RENDERER
@ POSITION_PRE_RENDERER
Definition: AgoraMediaBase.h:985
agora::media::IVideoEncodedFrameObserver::~IVideoEncodedFrameObserver
virtual ~IVideoEncodedFrameObserver()
Definition: AgoraMediaBase.h:1376
agora::media::RTC_IMAGE_JPEG_SOURCE
@ RTC_IMAGE_JPEG_SOURCE
Definition: AgoraMediaBase.h:315
agora::media::IVideoFrameObserver::getVideoFormatPreference
virtual base::VIDEO_PIXEL_FORMAT getVideoFormatPreference()
Definition: AgoraMediaBase.h:1521
agora::media::base::MEDIA_PLAYER_SOURCE_TYPE
MEDIA_PLAYER_SOURCE_TYPE
Definition: AgoraMediaBase.h:963
agora::media::SECONDARY_CAMERA_SOURCE
@ SECONDARY_CAMERA_SOURCE
Definition: AgoraMediaBase.h:291
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo()
Definition: AgoraMediaBase.h:1312
agora::media::TRANSCODED_VIDEO_SOURCE
@ TRANSCODED_VIDEO_SOURCE
Definition: AgoraMediaBase.h:327
agora::media::ENCODED_VIDEO_FRAME
@ ENCODED_VIDEO_FRAME
Definition: AgoraMediaBase.h:1597
agora::media::CONTENT_INSPECT_SUPERVISION
@ CONTENT_INSPECT_SUPERVISION
Definition: AgoraMediaBase.h:359
agora::media::base::ExternalVideoFrame::EGL_CONTEXT14
@ EGL_CONTEXT14
Definition: AgoraMediaBase.h:696
agora::media::base::view_t
void * view_t
Definition: AgoraMediaBase.h:408
agora::media::PRIMARY_SCREEN_SOURCE
@ PRIMARY_SCREEN_SOURCE
Definition: AgoraMediaBase.h:295
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:1361
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition: AgoraMediaBase.h:984
agora::media::base::VIDEO_CVPIXEL_NV12
@ VIDEO_CVPIXEL_NV12
Definition: AgoraMediaBase.h:583
agora::media::base::AudioPcmFrame::sample_rate_hz_
int sample_rate_hz_
Definition: AgoraMediaBase.h:476
agora::media::base::VIDEO_PIXEL_DEFAULT
@ VIDEO_PIXEL_DEFAULT
Definition: AgoraMediaBase.h:551
agora::media::base::ExternalVideoFrame::texture_slice_index
int texture_slice_index
Definition: AgoraMediaBase.h:821
agora::rtc::ROUTE_LOUDSPEAKER
@ ROUTE_LOUDSPEAKER
Definition: AgoraMediaBase.h:132
agora::media::SPEECH_DRIVEN_VIDEO_SOURCE
@ SPEECH_DRIVEN_VIDEO_SOURCE
Definition: AgoraMediaBase.h:331
agora::media::base::AudioEncodedFrameInfo
Definition: AgoraMediaBase.h:434
agora::media::base::AudioEncodedFrameInfo::sendTs
uint64_t sendTs
Definition: AgoraMediaBase.h:438
agora::media::FORMAT_MP4
@ FORMAT_MP4
Definition: AgoraMediaBase.h:1609
agora::media::ContentInspectConfig::modules
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:391
agora::media::ContentInspectConfig::extraInfo
const char * extraInfo
Definition: AgoraMediaBase.h:383
agora::media::base::VideoFrame::uBuffer
uint8_t * uBuffer
Definition: AgoraMediaBase.h:882
agora::media::ContentInspectConfig
Definition: AgoraMediaBase.h:382
agora::media::IVideoFrameObserver::getRotationApplied
virtual bool getRotationApplied()
Definition: AgoraMediaBase.h:1537
agora::media::IAudioFrameObserverBase::onEarMonitoringAudioFrame
virtual bool onEarMonitoringAudioFrame(AudioFrame &audioFrame)=0
agora::media::base::ExternalVideoFrame::eglContext
void * eglContext
Definition: AgoraMediaBase.h:776
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:451
agora::media::base::ExternalVideoFrame::alphaBuffer
uint8_t * alphaBuffer
Definition: AgoraMediaBase.h:805
agora::media::base::AudioPcmFrame::bytes_per_sample
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition: AgoraMediaBase.h:482
agora::media::base::ExternalVideoFrame::matrix
float matrix[16]
Definition: AgoraMediaBase.h:788
agora::media::base::AudioPcmFrame::data_
int16_t data_[kMaxDataSizeSamples]
Definition: AgoraMediaBase.h:484
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerSec
int samplesPerSec
Definition: AgoraMediaBase.h:1048
agora::rtc::VIDEO_SOURCE_CAMERA_THIRD
@ VIDEO_SOURCE_CAMERA_THIRD
Definition: AgoraMediaBase.h:87
agora::media::base::IVideoFrameMetaInfo::KEY_FACE_CAPTURE
@ KEY_FACE_CAPTURE
Definition: AgoraMediaBase.h:653
agora::media::base::AudioPcmFrame::operator=
AudioPcmFrame & operator=(const AudioPcmFrame &src)
Definition: AgoraMediaBase.h:486
agora::media::MediaRecorderConfiguration::storagePath
const char * storagePath
Definition: AgoraMediaBase.h:1690
agora::media::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:1404
agora::media::base::VideoFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:901
agora::media::base::VideoFrame::metaInfo
IVideoFrameMetaInfo * metaInfo
Definition: AgoraMediaBase.h:942
agora::rtc::AudioDeviceInfo
Definition: AgoraMediaBase.h:218
agora::rtc::VIDEO_SOURCE_RTC_IMAGE_GIF
@ VIDEO_SOURCE_RTC_IMAGE_GIF
Definition: AgoraMediaBase.h:77
agora::media::MEDIA_PLAYER_SOURCE
@ MEDIA_PLAYER_SOURCE
Definition: AgoraMediaBase.h:307
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_WRITE
@ PROCESS_MODE_READ_WRITE
Definition: AgoraMediaBase.h:1400
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length)
Definition: AgoraMediaBase.h:1313
agora::media::base::VideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:911
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_ARRAY
@ VIDEO_BUFFER_ARRAY
Definition: AgoraMediaBase.h:710
agora::media::base::ExternalVideoFrame::type
VIDEO_BUFFER_TYPE type
Definition: AgoraMediaBase.h:720
agora::media::base::VideoFrame::type
VIDEO_PIXEL_FORMAT type
Definition: AgoraMediaBase.h:854
agora::media::UserAudioSpectrumInfo::uid
agora::rtc::uid_t uid
Definition: AgoraMediaBase.h:1306
agora::rtc::TRACK_AUDIO_MIXED_POLICY_TYPE
TRACK_AUDIO_MIXED_POLICY_TYPE
Definition: AgoraMediaBase.h:203
agora::media::REMOTE_VIDEO_SOURCE
@ REMOTE_VIDEO_SOURCE
Definition: AgoraMediaBase.h:323
agora::media::base::VIDEO_PIXEL_RGBA
@ VIDEO_PIXEL_RGBA
Definition: AgoraMediaBase.h:567
agora::rtc::AudioParameters::frames_per_buffer
size_t frames_per_buffer
Definition: AgoraMediaBase.h:176
agora::media::base::IVideoFrameMetaInfo
Definition: AgoraMediaBase.h:650
agora::media::RTC_IMAGE_GIF_SOURCE
@ RTC_IMAGE_GIF_SOURCE
Definition: AgoraMediaBase.h:319
agora::media::base::VIDEO_PIXEL_FORMAT
VIDEO_PIXEL_FORMAT
Definition: AgoraMediaBase.h:547
agora::media::base::IVideoFrameMetaInfo::getMetaInfoStr
virtual const char * getMetaInfoStr(META_INFO_KEY key) const =0
agora::media::STREAM_TYPE_BOTH
@ STREAM_TYPE_BOTH
Definition: AgoraMediaBase.h:1628
agora::media::IAudioFrameObserverBase::AudioFrame::bytesPerSample
agora::rtc::BYTES_PER_SAMPLE bytesPerSample
Definition: AgoraMediaBase.h:1038
agora::media::base::AUDIO_DUAL_MONO_R
@ AUDIO_DUAL_MONO_R
Definition: AgoraMediaBase.h:539
agora::rtc::AudioDeviceInfo::isPlayoutDevice
bool isPlayoutDevice
Definition: AgoraMediaBase.h:238
agora::media::IVideoFrameObserver::onMediaPlayerVideoFrame
virtual bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId)=0
agora::media::base::AudioPcmFrame::AudioPcmFrame
AudioPcmFrame()
Definition: AgoraMediaBase.h:507
agora::rtc::VIDEO_SOURCE_CAMERA_SECONDARY
@ VIDEO_SOURCE_CAMERA_SECONDARY
Definition: AgoraMediaBase.h:55
agora::rtc::track_id_t
unsigned int track_id_t
Definition: AgoraMediaBase.h:30
agora::media::IAudioFrameObserver::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, rtc::uid_t uid, AudioFrame &audioFrame)=0
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_POSITION_EAR_MONITORING
@ AUDIO_FRAME_POSITION_EAR_MONITORING
Definition: AgoraMediaBase.h:1114
__deprecated
#define __deprecated
Definition: AgoraMediaBase.h:23
agora::media::base::VIDEO_PIXEL_I420
@ VIDEO_PIXEL_I420
Definition: AgoraMediaBase.h:555