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 
33 static const unsigned int DEFAULT_CONNECTION_ID = 0;
34 static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)();
35 
36 
38 
42 enum AudioRoute {
78  ROUTE_USB
79 };
80 
83  NLP_MILD = 1,
88 };
89 
98 };
99 
102  size_t channels;
104 
106  : sample_rate(0),
107  channels(0),
108  frames_per_buffer(0) {}
109 };
110 
117 
123 };
124 
125 } // namespace rtc
126 
127 namespace media {
188 };
189 namespace base {
190 
191 typedef void* view_t;
192 
193 typedef const char* user_id_t;
194 
195 static const uint8_t kMaxCodecNameLength = 50;
196 
202 };
203 
212  uint32_t timestamp;
213  // Audio level indication.
216  : timestamp(0),
217  audioLevelIndication(127) {}
218 };
219 
223 };
224 
228 };
229 
238  uint64_t sendTs;
242  uint8_t codec;
244  : sendTs(0),
245  codec(0) {}
246 };
247 
256  // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
263  kMaxDataSizeSamples = 3840,
265  kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
266  };
267 
284  int16_t data_[kMaxDataSizeSamples];
285 
287  if(this == &src) {
288  return *this;
289  }
290 
291  this->capture_timestamp = src.capture_timestamp;
292  this->samples_per_channel_ = src.samples_per_channel_;
293  this->sample_rate_hz_ = src.sample_rate_hz_;
294  this->bytes_per_sample = src.bytes_per_sample;
295  this->num_channels_ = src.num_channels_;
296 
297  size_t length = src.samples_per_channel_ * src.num_channels_;
298  if (length > kMaxDataSizeSamples) {
299  length = kMaxDataSizeSamples;
300  }
301 
302  memcpy(this->data_, src.data_, length * sizeof(int16_t));
303 
304  return *this;
305  }
306 
308  : capture_timestamp(0),
310  sample_rate_hz_(0),
311  num_channels_(0),
313  memset(data_, 0, sizeof(data_));
314  }
315 
322  size_t length = src.samples_per_channel_ * src.num_channels_;
323  if (length > kMaxDataSizeSamples) {
324  length = kMaxDataSizeSamples;
325  }
326 
327  memcpy(this->data_, src.data_, length * sizeof(int16_t));
328  }
329 };
330 
337  AUDIO_DUAL_MONO_L = 1,
339  AUDIO_DUAL_MONO_R = 2,
342 };
343 
345  public:
354  virtual void onFrame(AudioPcmFrame* frame) = 0;
355  virtual ~IAudioFrameObserver() {}
356 };
357 
398 };
399 
420 };
421 
429  buffer(NULL),
430  stride(0),
431  height(0),
432  cropLeft(0),
433  cropTop(0),
434  cropRight(0),
435  cropBottom(0),
436  rotation(0),
437  timestamp(0),
438  eglContext(NULL),
440  textureId(0),
441  metadata_buffer(NULL),
442  metadata_size(0){}
443 
456  };
457 
474  };
475 
487  void* buffer;
492  int stride;
496  int height;
501  int cropLeft;
506  int cropTop;
521  int rotation;
526  long long timestamp;
532  void *eglContext;
544  float matrix[16];
549  uint8_t* metadata_buffer;
555 };
556 
560 struct VideoFrame {
563  width(0),
564  height(0),
565  yStride(0),
566  uStride(0),
567  vStride(0),
568  yBuffer(NULL),
569  uBuffer(NULL),
570  vBuffer(NULL),
571  rotation(0),
572  renderTimeMs(0),
573  avsync_type(0),
574  metadata_buffer(NULL),
575  metadata_size(0),
576  sharedContext(0),
577  textureId(0){}
578 
586  int width;
590  int height;
594  int yStride;
598  int uStride;
602  int vStride;
606  uint8_t* yBuffer;
610  uint8_t* uBuffer;
614  uint8_t* vBuffer;
618  int rotation;
625  int64_t renderTimeMs;
634  uint8_t* metadata_buffer;
651  float matrix[16];
652 };
653 
655  public:
663  virtual void onFrame(const VideoFrame* frame) = 0;
664  virtual ~IVideoFrameObserver() {}
665  virtual bool isExternal() { return true; }
666 };
667 
686 };
687 
693 };
694 
695 } // namespace base
696 
701  public:
710  };
714  struct AudioFrame {
730  int channels;
738  void* buffer;
746  int64_t renderTimeMs;
748 
752  channels(0),
753  samplesPerSec(0),
754  buffer(NULL),
755  renderTimeMs(0),
756  avsync_type(0) {}
757  };
758 
759  public:
761 
770  virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
779  virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
788  virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0;
798  virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId, AudioFrame& audioFrame) {
799  (void) channelId;
800  (void) userId;
801  (void) audioFrame;
802  return true;
803  }
804 };
805 
810  public:
821  virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid, AudioFrame& audioFrame) = 0;
822 };
823 
828  const float *audioSpectrumData;
833 
835  AudioSpectrumData(const float *data, int length) :
836  audioSpectrumData(data), dataLength(length) {}
837 };
838 
848 
850  UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length) :
851  uid(_uid) { spectrumData.audioSpectrumData = data; spectrumData.dataLength = length; }
852 };
853 
858 public:
860 
873  virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
874 
892  virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo * spectrums, unsigned int spectrumNumber) = 0;
893 };
894 
899  public:
910  virtual bool OnEncodedVideoFrame(rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
911  const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
912 
914 };
915 
920  public:
922 
924  PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original frame.
925  PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and affect the following frame processing in SDK.
926  };
927 
928  public:
929  virtual ~IVideoFrameObserver() {}
930 
949  virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) = 0;
950 
968  virtual bool onPreEncodeVideoFrame(VideoFrame& videoFrame) = 0;
969 
970  virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame& videoFrame) = 0;
971 
989  virtual bool onSecondaryPreEncodeCameraVideoFrame(VideoFrame& videoFrame) = 0;
990 
1006  virtual bool onScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
1007 
1008  virtual bool onPreEncodeScreenVideoFrame(VideoFrame& videoFrame) = 0;
1025  virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
1026 
1027  virtual bool onSecondaryScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
1028 
1029  virtual bool onSecondaryPreEncodeScreenVideoFrame(VideoFrame& videoFrame) = 0;
1030 
1048  virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame) = 0;
1049 
1050  virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
1051 
1057  return PROCESS_MODE_READ_ONLY;
1058  }
1059 
1060  /*
1061  * Occurs each time needs to get preference video frame type.
1062  *
1063  * @return preference video pixel format.
1064  */
1066 
1074  virtual bool getRotationApplied() { return false; }
1075 
1083  virtual bool getMirrorApplied() { return false; }
1084 
1102  virtual uint32_t getObservedFramePosition() {
1104  }
1105 
1113  virtual bool isExternal() { return true; }
1114 };
1117 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
1122 };
1128 };
1142 };
1151  unsigned int frequency;
1152 };
1157  bool enable;
1158 
1161 
1164 
1167  const char* extraInfo;
1168 
1177  {
1178  enable = rth.enable;
1179  DeviceWork = rth.DeviceWork;
1180  CloudWork = rth.CloudWork;
1182  extraInfo = rth.extraInfo;
1183  moduleCount = rth.moduleCount;
1185  return *this;
1186  }
1188 };
1190 {
1191  const char* channel;
1192  unsigned int uid;
1193  const char* filePath;
1195  {
1196  channel = rth.channel;
1197  uid = rth.uid;
1198  filePath = rth.filePath;
1199  return *this;
1200  }
1201  SnapShotConfig():channel(NULL),uid(0), filePath(NULL){
1202  }
1203 };
1205  public:
1216  virtual void onSnapshotTaken(const char* channel, unsigned int uid, const char* filePath, int width, int height, int errCode) = 0;
1217  virtual ~ISnapshotCallback(){};
1218 };
1219 
1232 };
1233 } // namespace media
1234 } // namespace agora
agora::media::SnapShotConfig::filePath
const char * filePath
Definition: AgoraMediaBase.h:1193
agora::media::CONTENT_INSPECT_DEVICE_HIVE
@ CONTENT_INSPECT_DEVICE_HIVE
Definition: AgoraMediaBase.h:1126
agora::media::IAudioFrameObserverBase::FRAME_TYPE_PCM16
@ FRAME_TYPE_PCM16
Definition: AgoraMediaBase.h:709
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:560
agora::media::ContentInspectModule::type
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:1147
agora::media::base::ExternalVideoFrame::EGL_CONTEXT_TYPE
EGL_CONTEXT_TYPE
Definition: AgoraMediaBase.h:447
agora::media::base::VideoFrame::vBuffer
uint8_t * vBuffer
Definition: AgoraMediaBase.h:614
agora::media::base::MEDIA_PLAYER_SOURCE_FULL_FEATURED
@ MEDIA_PLAYER_SOURCE_FULL_FEATURED
Definition: AgoraMediaBase.h:680
agora::media::base::VideoFrame::yStride
int yStride
Definition: AgoraMediaBase.h:594
agora::media::base::IVideoFrameObserver::onFrame
virtual void onFrame(const VideoFrame *frame)=0
agora::rtc::AudioParameters::AudioParameters
AudioParameters()
Definition: AgoraMediaBase.h:105
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
Definition: AgoraMediaBase.h:688
agora::media::base::ExternalVideoFrame::cropTop
int cropTop
Definition: AgoraMediaBase.h:506
agora::media::VIDEO_FRAME
@ VIDEO_FRAME
Definition: AgoraMediaBase.h:1227
agora::media::IAudioFrameObserverBase
Definition: AgoraMediaBase.h:700
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
@ RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
Definition: AgoraMediaBase.h:122
agora::media::IVideoFrameObserver::onSecondaryPreEncodeScreenVideoFrame
virtual bool onSecondaryPreEncodeScreenVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::AudioPcmFrame::capture_timestamp
uint32_t capture_timestamp
Definition: AgoraMediaBase.h:270
agora::media::base::AUDIO_DUAL_MONO_MODE
AUDIO_DUAL_MONO_MODE
Definition: AgoraMediaBase.h:333
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData(const float *data, int length)
Definition: AgoraMediaBase.h:835
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:29
agora::rtc::NLP_AGGRESSIVE
@ NLP_AGGRESSIVE
Definition: AgoraMediaBase.h:85
agora::media::IAudioFrameObserverBase::onMixedAudioFrame
virtual bool onMixedAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:857
agora::media::IVideoFrameObserver::getVideoPixelFormatPreference
virtual base::VIDEO_PIXEL_FORMAT getVideoPixelFormatPreference()
Definition: AgoraMediaBase.h:1065
agora::media::CONTENT_INSPECT_PORN
@ CONTENT_INSPECT_PORN
Definition: AgoraMediaBase.h:1121
agora::rtc::AudioParameters
Definition: AgoraMediaBase.h:100
agora::media::base::RENDER_MODE_HIDDEN
@ RENDER_MODE_HIDDEN
Definition: AgoraMediaBase.h:408
agora::media::IAudioFrameObserverBase::AudioFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:747
agora::media::base::ExternalVideoFrame::format
VIDEO_PIXEL_FORMAT format
Definition: AgoraMediaBase.h:483
agora::media::IVideoFrameObserver::onSecondaryScreenCaptureVideoFrame
virtual bool onSecondaryScreenCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::IVideoFrameObserver::onScreenCaptureVideoFrame
virtual bool onScreenCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1754
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:654
agora::media::CONTENT_INSPECT_SEXY
@ CONTENT_INSPECT_SEXY
Definition: AgoraMediaBase.h:1120
agora::media::base::PacketOptions::timestamp
uint32_t timestamp
Definition: AgoraMediaBase.h:212
agora::media::base::VideoFrame::width
int width
Definition: AgoraMediaBase.h:586
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:919
agora::media::ContentInspectConfig::DeviceWork
bool DeviceWork
Definition: AgoraMediaBase.h:1160
agora::media::AudioSpectrumData::dataLength
int dataLength
Definition: AgoraMediaBase.h:832
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:714
agora::rtc::AudioRoute
AudioRoute
Definition: AgoraMediaBase.h:42
agora::rtc::ROUTE_EARPIECE
@ ROUTE_EARPIECE
Definition: AgoraMediaBase.h:54
agora::media::base::ExternalVideoFrame::height
int height
Definition: AgoraMediaBase.h:496
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:809
agora::media::CONTENT_INSPECT_DEVICE_TUPU
@ CONTENT_INSPECT_DEVICE_TUPU
Definition: AgoraMediaBase.h:1127
agora::media::base::AudioEncodedFrameInfo::codec
uint8_t codec
Definition: AgoraMediaBase.h:242
agora::rtc::NLP_EXTREME
@ NLP_EXTREME
Definition: AgoraMediaBase.h:87
agora::media::base::ExternalVideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:521
agora::media::base::VIDEO_PIXEL_NV12
@ VIDEO_PIXEL_NV12
Definition: AgoraMediaBase.h:385
agora::media::base::ExternalVideoFrame::cropRight
int cropRight
Definition: AgoraMediaBase.h:511
agora::media::base::VIDEO_PIXEL_I422
@ VIDEO_PIXEL_I422
Definition: AgoraMediaBase.h:397
agora::media::base::ExternalVideoFrame::eglType
EGL_CONTEXT_TYPE eglType
Definition: AgoraMediaBase.h:536
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TEXTURE
@ VIDEO_BUFFER_TEXTURE
Definition: AgoraMediaBase.h:473
agora::media::PRIMARY_CAMERA_SOURCE
@ PRIMARY_CAMERA_SOURCE
Definition: AgoraMediaBase.h:143
agora::media::base::RENDER_MODE_FIT
@ RENDER_MODE_FIT
Definition: AgoraMediaBase.h:414
agora::rtc::TWO_BYTES_PER_SAMPLE
@ TWO_BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:97
agora::media::IVideoFrameObserver::onSecondaryCameraCaptureVideoFrame
virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::IAudioFrameObserverBase::AudioFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:738
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_ONLY
@ PROCESS_MODE_READ_ONLY
Definition: AgoraMediaBase.h:924
agora::rtc::ROUTE_HEADSETNOMIC
@ ROUTE_HEADSETNOMIC
Definition: AgoraMediaBase.h:58
agora::media::base::ExternalVideoFrame::cropBottom
int cropBottom
Definition: AgoraMediaBase.h:516
agora::media::base::ExternalVideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:549
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_RAW_DATA
@ VIDEO_BUFFER_RAW_DATA
Definition: AgoraMediaBase.h:465
agora::media::base::AdvancedAudioOptions::AdvancedAudioOptions
AdvancedAudioOptions()
Definition: AgoraMediaBase.h:227
agora::media::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:1113
agora::media::base::POSITION_PRE_ENCODER
@ POSITION_PRE_ENCODER
Definition: AgoraMediaBase.h:691
agora::media::AUDIO_RECORDING_SOURCE
@ AUDIO_RECORDING_SOURCE
Definition: AgoraMediaBase.h:139
agora::media::base::VideoFrame::yBuffer
uint8_t * yBuffer
Definition: AgoraMediaBase.h:606
agora::media::base::VIDEO_PIXEL_NV21
@ VIDEO_PIXEL_NV21
Definition: AgoraMediaBase.h:377
agora
Definition: AgoraAtomicOps.h:21
agora::media::base::MEDIA_PLAYER_SOURCE_SIMPLE
@ MEDIA_PLAYER_SOURCE_SIMPLE
Definition: AgoraMediaBase.h:685
agora::media::base::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:665
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(const char *channelId, base::user_id_t userId, AudioFrame &audioFrame)
Definition: AgoraMediaBase.h:798
agora::rtc::AudioParameters::channels
size_t channels
Definition: AgoraMediaBase.h:102
agora::media::base::AUDIO_PROCESSING_CHANNELS
AUDIO_PROCESSING_CHANNELS
Definition: AgoraMediaBase.h:220
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TYPE
VIDEO_BUFFER_TYPE
Definition: AgoraMediaBase.h:461
agora::media::CONTENT_INSPECT_NEUTRAL
@ CONTENT_INSPECT_NEUTRAL
Definition: AgoraMediaBase.h:1119
agora::media::base::RENDER_MODE_ADAPTIVE
@ RENDER_MODE_ADAPTIVE
Definition: AgoraMediaBase.h:419
agora::media::ContentInspectModule
Definition: AgoraMediaBase.h:1143
agora::media::base::ExternalVideoFrame::EGL_CONTEXT10
@ EGL_CONTEXT10
Definition: AgoraMediaBase.h:451
agora::media::base::ExternalVideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:554
agora::media::ContentInspectConfig::moduleCount
int moduleCount
Definition: AgoraMediaBase.h:1175
agora::media::base::VideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:618
agora::rtc::NLP_NORMAL
@ NLP_NORMAL
Definition: AgoraMediaBase.h:84
agora::media::AUDIO_PLAYOUT_SOURCE
@ AUDIO_PLAYOUT_SOURCE
Definition: AgoraMediaBase.h:135
agora::media::base::VideoFrame::height
int height
Definition: AgoraMediaBase.h:590
agora::media::IAudioFrameObserverBase::AudioFrame::channels
int channels
Definition: AgoraMediaBase.h:730
agora::rtc::ROUTE_HEADSETBLUETOOTH
@ ROUTE_HEADSETBLUETOOTH
Definition: AgoraMediaBase.h:70
agora::media::base::PacketOptions::audioLevelIndication
uint8_t audioLevelIndication
Definition: AgoraMediaBase.h:214
agora::media::IAudioFrameObserverBase::~IAudioFrameObserverBase
virtual ~IAudioFrameObserverBase()
Definition: AgoraMediaBase.h:760
agora::media::IVideoFrameObserver::VideoFrame
media::base::VideoFrame VideoFrame
Definition: AgoraMediaBase.h:921
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:425
agora::media::base::AudioPcmFrame::AudioPcmFrame
AudioPcmFrame(const AudioPcmFrame &src)
Definition: AgoraMediaBase.h:316
agora::media::base::ExternalVideoFrame::timestamp
long long timestamp
Definition: AgoraMediaBase.h:526
agora::media::base::VIDEO_PIXEL_BGRA
@ VIDEO_PIXEL_BGRA
Definition: AgoraMediaBase.h:373
agora::rtc::ROUTE_HDMI
@ ROUTE_HDMI
Definition: AgoraMediaBase.h:74
agora::media::IAudioFrameObserverBase::AudioFrame::AudioFrame
AudioFrame()
Definition: AgoraMediaBase.h:749
agora::media::base::AdvancedAudioOptions::audioProcessingChannels
AUDIO_PROCESSING_CHANNELS audioProcessingChannels
Definition: AgoraMediaBase.h:226
agora::media::IVideoFrameObserver::onTranscodedVideoFrame
virtual bool onTranscodedVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::VideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:647
agora::media::IVideoFrameObserver::onPreEncodeVideoFrame
virtual bool onPreEncodeVideoFrame(VideoFrame &videoFrame)=0
agora::media::IAudioSpectrumObserver::onLocalAudioSpectrum
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
agora::media::CONTENT_INSPECT_MODERATION
@ CONTENT_INSPECT_MODERATION
Definition: AgoraMediaBase.h:1137
agora::media::IAudioSpectrumObserver::onRemoteAudioSpectrum
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
agora::media::base::AudioEncodedFrameInfo::AudioEncodedFrameInfo
AudioEncodedFrameInfo()
Definition: AgoraMediaBase.h:243
agora::media::SnapShotConfig::uid
unsigned int uid
Definition: AgoraMediaBase.h:1192
agora::media::base::PacketOptions::PacketOptions
PacketOptions()
Definition: AgoraMediaBase.h:215
agora::rtc::NLP_AGGRESSIVENESS
NLP_AGGRESSIVENESS
Definition: AgoraMediaBase.h:81
agora::media::base::VideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:634
MAX_CONTENT_INSPECT_MODULE_COUNT
#define MAX_CONTENT_INSPECT_MODULE_COUNT
Definition: AgoraMediaBase.h:1117
agora::media::base::VIDEO_TEXTURE_OES
@ VIDEO_TEXTURE_OES
Definition: AgoraMediaBase.h:393
agora::media::UNKNOWN_MEDIA_SOURCE
@ UNKNOWN_MEDIA_SOURCE
Definition: AgoraMediaBase.h:187
agora::media::SECONDARY_SCREEN_SOURCE
@ SECONDARY_SCREEN_SOURCE
Definition: AgoraMediaBase.h:155
agora::rtc::NLP_SUPER_AGGRESSIVE
@ NLP_SUPER_AGGRESSIVE
Definition: AgoraMediaBase.h:86
agora::media::base::AudioPcmFrame::samples_per_channel_
size_t samples_per_channel_
Definition: AgoraMediaBase.h:273
agora::media::CUSTOM_VIDEO_SOURCE
@ CUSTOM_VIDEO_SOURCE
Definition: AgoraMediaBase.h:159
agora::media::IVideoFrameObserver::onCaptureVideoFrame
virtual bool onCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::IVideoFrameObserver::VIDEO_FRAME_PROCESS_MODE
VIDEO_FRAME_PROCESS_MODE
Definition: AgoraMediaBase.h:923
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:208
agora::media::base::AudioPcmFrame::OPTIONAL_ENUM_SIZE_T
OPTIONAL_ENUM_SIZE_T
Definition: AgoraMediaBase.h:255
agora::media::base::ExternalVideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:540
agora::media::base::VIDEO_TEXTURE_2D
@ VIDEO_TEXTURE_2D
Definition: AgoraMediaBase.h:389
agora::media::base::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:664
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:651
agora::media::RTC_IMAGE_PNG_SOURCE
@ RTC_IMAGE_PNG_SOURCE
Definition: AgoraMediaBase.h:167
agora::media::IVideoFrameObserver::onPreEncodeScreenVideoFrame
virtual bool onPreEncodeScreenVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::VideoFrame::vStride
int vStride
Definition: AgoraMediaBase.h:602
agora::media::CONTENT_INSPECT_DEVICE_INVALID
@ CONTENT_INSPECT_DEVICE_INVALID
Definition: AgoraMediaBase.h:1124
agora::media::AudioSpectrumData::audioSpectrumData
const float * audioSpectrumData
Definition: AgoraMediaBase.h:828
agora::media::base::ExternalVideoFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:487
agora::media::ContentInspectConfig::operator=
ContentInspectConfig & operator=(const ContentInspectConfig &rth)
Definition: AgoraMediaBase.h:1176
agora::media::base::VideoFrame::VideoFrame
VideoFrame()
Definition: AgoraMediaBase.h:561
agora::media::base::VideoFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:625
agora::media::UserAudioSpectrumInfo
Definition: AgoraMediaBase.h:839
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:403
agora::media::base::AUDIO_DUAL_MONO_MIX
@ AUDIO_DUAL_MONO_MIX
Definition: AgoraMediaBase.h:341
agora::rtc::AudioParameters::sample_rate
int sample_rate
Definition: AgoraMediaBase.h:101
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_TYPE
AUDIO_FRAME_TYPE
Definition: AgoraMediaBase.h:705
agora::media::base::user_id_t
const char * user_id_t
Definition: AgoraMediaBase.h:193
agora::media::base::ExternalVideoFrame::stride
int stride
Definition: AgoraMediaBase.h:492
agora::media::IVideoFrameObserver::getVideoFrameProcessMode
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Definition: AgoraMediaBase.h:1056
agora::media::SnapShotConfig::channel
const char * channel
Definition: AgoraMediaBase.h:1191
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition: AgoraMediaBase.h:116
agora::media::IVideoFrameObserver::getMirrorApplied
virtual bool getMirrorApplied()
Definition: AgoraMediaBase.h:1083
agora::media::IAudioFrameObserverBase::AudioFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:746
agora::media::CONTENT_INSPECT_RESULT
CONTENT_INSPECT_RESULT
Definition: AgoraMediaBase.h:1118
agora::media::base::AUDIO_PROCESSING_STEREO
@ AUDIO_PROCESSING_STEREO
Definition: AgoraMediaBase.h:222
agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition: AgoraMediaBase.h:674
agora::rtc::NLP_NOT_SPECIFIED
@ NLP_NOT_SPECIFIED
Definition: AgoraMediaBase.h:82
agora::rtc::NLP_MILD
@ NLP_MILD
Definition: AgoraMediaBase.h:83
agora::media::ContentInspectModule::frequency
unsigned int frequency
Definition: AgoraMediaBase.h:1151
agora::media::IVideoFrameObserver::getObservedFramePosition
virtual uint32_t getObservedFramePosition()
Definition: AgoraMediaBase.h:1102
agora::media::IAudioFrameObserverBase::AudioFrame::type
AUDIO_FRAME_TYPE type
Definition: AgoraMediaBase.h:718
agora::rtc::BYTES_PER_SAMPLE
BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:93
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: AgoraMediaBase.h:111
agora::media::UserAudioSpectrumInfo::spectrumData
struct AudioSpectrumData spectrumData
Definition: AgoraMediaBase.h:847
agora::media::base::VideoFrame::uStride
int uStride
Definition: AgoraMediaBase.h:598
agora::media::ContentInspectConfig::ContentInspectConfig
ContentInspectConfig()
Definition: AgoraMediaBase.h:1187
agora::media::base::MAX_METADATA_SIZE_IN_BYTE
@ MAX_METADATA_SIZE_IN_BYTE
Definition: AgoraMediaBase.h:201
agora::media::base::POSITION_POST_FILTERS
@ POSITION_POST_FILTERS
Definition: AgoraMediaBase.h:692
agora::media::ISnapshotCallback
Definition: AgoraMediaBase.h:1204
agora::media::base::VIDEO_PIXEL_UNKNOWN
@ VIDEO_PIXEL_UNKNOWN
Definition: AgoraMediaBase.h:365
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerChannel
int samplesPerChannel
Definition: AgoraMediaBase.h:722
agora::rtc::ROUTE_DEFAULT
@ ROUTE_DEFAULT
Definition: AgoraMediaBase.h:46
agora::media::IVideoFrameObserver::onSecondaryPreEncodeCameraVideoFrame
virtual bool onSecondaryPreEncodeCameraVideoFrame(VideoFrame &videoFrame)=0
agora::media::SnapShotConfig
Definition: AgoraMediaBase.h:1190
agora::media::base::AUDIO_DUAL_MONO_L
@ AUDIO_DUAL_MONO_L
Definition: AgoraMediaBase.h:337
agora::media::IVideoFrameObserver::onRenderVideoFrame
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
agora::rtc::DEFAULT_CONNECTION_ID
static const unsigned int DEFAULT_CONNECTION_ID
Definition: AgoraMediaBase.h:33
agora::media::base::AudioPcmFrame::num_channels_
size_t num_channels_
Definition: AgoraMediaBase.h:279
agora::rtc::ROUTE_HEADSET
@ ROUTE_HEADSET
Definition: AgoraMediaBase.h:50
agora::media::EXTERNAL_VIDEO_SOURCE_TYPE
EXTERNAL_VIDEO_SOURCE_TYPE
Definition: AgoraMediaBase.h:1223
agora::media::base::VideoFrame::sharedContext
void * sharedContext
Definition: AgoraMediaBase.h:643
agora::media::CONTENT_INSPECT_TYPE
CONTENT_INSPECT_TYPE
Definition: AgoraMediaBase.h:1129
agora::media::CONTENT_INSPECT_DEVICE_TYPE
CONTENT_INSPECT_DEVICE_TYPE
Definition: AgoraMediaBase.h:1123
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrame
virtual bool onPlaybackAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData()
Definition: AgoraMediaBase.h:834
agora::media::base::kMaxCodecNameLength
static const uint8_t kMaxCodecNameLength
Definition: AgoraMediaBase.h:195
agora::media::base::AUDIO_DUAL_MONO_STEREO
@ AUDIO_DUAL_MONO_STEREO
Definition: AgoraMediaBase.h:335
agora::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:344
agora::media::base::ExternalVideoFrame::ExternalVideoFrame
ExternalVideoFrame()
Definition: AgoraMediaBase.h:426
agora::media::IAudioSpectrumObserver::~IAudioSpectrumObserver
virtual ~IAudioSpectrumObserver()
Definition: AgoraMediaBase.h:859
agora::rtc::ROUTE_SPEAKERPHONE
@ ROUTE_SPEAKERPHONE
Definition: AgoraMediaBase.h:62
agora::media::AudioSpectrumData
Definition: AgoraMediaBase.h:824
agora::media::IAudioFrameObserverBase::onRecordAudioFrame
virtual bool onRecordAudioFrame(const char *channelId, AudioFrame &audioFrame)=0
agora::media::MEDIA_SOURCE_TYPE
MEDIA_SOURCE_TYPE
Definition: AgoraMediaBase.h:131
agora::rtc::ROUTE_USB
@ ROUTE_USB
Definition: AgoraMediaBase.h:78
agora::media::CONTENT_INSPECT_DEVICE_AGORA
@ CONTENT_INSPECT_DEVICE_AGORA
Definition: AgoraMediaBase.h:1125
agora::media::base::ExternalVideoFrame::cropLeft
int cropLeft
Definition: AgoraMediaBase.h:501
agora::rtc::DUMMY_CONNECTION_ID
static const unsigned int DUMMY_CONNECTION_ID
Definition: AgoraMediaBase.h:34
agora::media::base::IAudioFrameObserver::~IAudioFrameObserver
virtual ~IAudioFrameObserver()
Definition: AgoraMediaBase.h:355
agora::media::base::POSITION_PRE_RENDERER
@ POSITION_PRE_RENDERER
Definition: AgoraMediaBase.h:690
agora::media::IVideoEncodedFrameObserver::~IVideoEncodedFrameObserver
virtual ~IVideoEncodedFrameObserver()
Definition: AgoraMediaBase.h:913
agora::media::RTC_IMAGE_JPEG_SOURCE
@ RTC_IMAGE_JPEG_SOURCE
Definition: AgoraMediaBase.h:171
agora::media::base::MEDIA_PLAYER_SOURCE_TYPE
MEDIA_PLAYER_SOURCE_TYPE
Definition: AgoraMediaBase.h:668
agora::media::SECONDARY_CAMERA_SOURCE
@ SECONDARY_CAMERA_SOURCE
Definition: AgoraMediaBase.h:147
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo()
Definition: AgoraMediaBase.h:849
agora::media::TRANSCODED_VIDEO_SOURCE
@ TRANSCODED_VIDEO_SOURCE
Definition: AgoraMediaBase.h:183
agora::media::ENCODED_VIDEO_FRAME
@ ENCODED_VIDEO_FRAME
Definition: AgoraMediaBase.h:1231
agora::media::base::ExternalVideoFrame::EGL_CONTEXT14
@ EGL_CONTEXT14
Definition: AgoraMediaBase.h:455
agora::media::base::view_t
void * view_t
Definition: AgoraMediaBase.h:191
agora::media::PRIMARY_SCREEN_SOURCE
@ PRIMARY_SCREEN_SOURCE
Definition: AgoraMediaBase.h:151
agora::media::base::AUDIO_PROCESSING_MONO
@ AUDIO_PROCESSING_MONO
Definition: AgoraMediaBase.h:221
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:898
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition: AgoraMediaBase.h:689
agora::media::base::AudioPcmFrame::sample_rate_hz_
int sample_rate_hz_
Definition: AgoraMediaBase.h:276
agora::rtc::ROUTE_LOUDSPEAKER
@ ROUTE_LOUDSPEAKER
Definition: AgoraMediaBase.h:66
agora::media::CONTENT_INSPECT_SUPERVISE
@ CONTENT_INSPECT_SUPERVISE
Definition: AgoraMediaBase.h:1141
agora::media::CONTENT_INSPECT_INVALIDE
@ CONTENT_INSPECT_INVALIDE
Definition: AgoraMediaBase.h:1133
agora::media::ISnapshotCallback::~ISnapshotCallback
virtual ~ISnapshotCallback()
Definition: AgoraMediaBase.h:1217
agora::media::base::AudioEncodedFrameInfo
Definition: AgoraMediaBase.h:234
agora::media::base::AudioEncodedFrameInfo::sendTs
uint64_t sendTs
Definition: AgoraMediaBase.h:238
agora::media::ContentInspectConfig::modules
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:1172
agora::media::ContentInspectConfig::enable
bool enable
Definition: AgoraMediaBase.h:1157
agora::media::ContentInspectConfig::extraInfo
const char * extraInfo
Definition: AgoraMediaBase.h:1167
agora::media::base::VideoFrame::uBuffer
uint8_t * uBuffer
Definition: AgoraMediaBase.h:610
agora::media::ContentInspectConfig
Definition: AgoraMediaBase.h:1155
agora::media::IVideoFrameObserver::getRotationApplied
virtual bool getRotationApplied()
Definition: AgoraMediaBase.h:1074
agora::media::base::IAudioFrameObserver::onFrame
virtual void onFrame(AudioPcmFrame *frame)=0
agora::media::SnapShotConfig::SnapShotConfig
SnapShotConfig()
Definition: AgoraMediaBase.h:1201
agora::media::base::ExternalVideoFrame::eglContext
void * eglContext
Definition: AgoraMediaBase.h:532
agora::media::SnapShotConfig::operator=
SnapShotConfig & operator=(SnapShotConfig &rth)
Definition: AgoraMediaBase.h:1194
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:251
agora::media::base::AudioPcmFrame::bytes_per_sample
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition: AgoraMediaBase.h:282
agora::media::base::ExternalVideoFrame::matrix
float matrix[16]
Definition: AgoraMediaBase.h:544
agora::media::base::MAX_METADATA_SIZE_TYPE
MAX_METADATA_SIZE_TYPE
Definition: AgoraMediaBase.h:200
agora::media::base::AudioPcmFrame::data_
int16_t data_[kMaxDataSizeSamples]
Definition: AgoraMediaBase.h:284
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerSec
int samplesPerSec
Definition: AgoraMediaBase.h:734
agora::media::IVideoEncodedFrameObserver::OnEncodedVideoFrame
virtual bool OnEncodedVideoFrame(rtc::uid_t uid, const uint8_t *imageBuffer, size_t length, const rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
agora::media::base::AudioPcmFrame::operator=
AudioPcmFrame & operator=(const AudioPcmFrame &src)
Definition: AgoraMediaBase.h:286
agora::media::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:929
agora::media::base::VideoFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:629
agora::media::MEDIA_PLAYER_SOURCE
@ MEDIA_PLAYER_SOURCE
Definition: AgoraMediaBase.h:163
agora::media::ContentInspectConfig::DeviceworkType
CONTENT_INSPECT_DEVICE_TYPE DeviceworkType
Definition: AgoraMediaBase.h:1166
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_WRITE
@ PROCESS_MODE_READ_WRITE
Definition: AgoraMediaBase.h:925
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length)
Definition: AgoraMediaBase.h:850
agora::media::base::VideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:639
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_ARRAY
@ VIDEO_BUFFER_ARRAY
Definition: AgoraMediaBase.h:469
agora::media::base::ExternalVideoFrame::type
VIDEO_BUFFER_TYPE type
Definition: AgoraMediaBase.h:479
agora::media::base::VideoFrame::type
VIDEO_PIXEL_FORMAT type
Definition: AgoraMediaBase.h:582
agora::media::UserAudioSpectrumInfo::uid
agora::rtc::uid_t uid
Definition: AgoraMediaBase.h:843
agora::media::REMOTE_VIDEO_SOURCE
@ REMOTE_VIDEO_SOURCE
Definition: AgoraMediaBase.h:179
agora::media::base::VIDEO_PIXEL_RGBA
@ VIDEO_PIXEL_RGBA
Definition: AgoraMediaBase.h:381
agora::rtc::AudioParameters::frames_per_buffer
size_t frames_per_buffer
Definition: AgoraMediaBase.h:103
agora::media::ISnapshotCallback::onSnapshotTaken
virtual void onSnapshotTaken(const char *channel, unsigned int uid, const char *filePath, int width, int height, int errCode)=0
snapshot taken callback
agora::media::RTC_IMAGE_GIF_SOURCE
@ RTC_IMAGE_GIF_SOURCE
Definition: AgoraMediaBase.h:175
agora::media::base::VIDEO_PIXEL_FORMAT
VIDEO_PIXEL_FORMAT
Definition: AgoraMediaBase.h:361
agora::media::IAudioFrameObserverBase::AudioFrame::bytesPerSample
agora::rtc::BYTES_PER_SAMPLE bytesPerSample
Definition: AgoraMediaBase.h:726
agora::media::base::AUDIO_DUAL_MONO_R
@ AUDIO_DUAL_MONO_R
Definition: AgoraMediaBase.h:339
agora::media::ContentInspectConfig::CloudWork
bool CloudWork
Definition: AgoraMediaBase.h:1163
agora::media::IVideoFrameObserver::onMediaPlayerVideoFrame
virtual bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId)=0
agora::media::base::AudioPcmFrame::AudioPcmFrame
AudioPcmFrame()
Definition: AgoraMediaBase.h:307
agora::media::base::AdvancedAudioOptions
Definition: AgoraMediaBase.h:225
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
__deprecated
#define __deprecated
Definition: AgoraMediaBase.h:23
agora::media::base::VIDEO_PIXEL_I420
@ VIDEO_PIXEL_I420
Definition: AgoraMediaBase.h:369