Agora Java API Reference for Android
AgoraMediaBase.h
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 namespace agora {
23 namespace rtc {
24 
25 typedef unsigned int uid_t;
26 typedef unsigned int track_id_t;
27 typedef unsigned int conn_id_t;
28 
29 static const unsigned int DEFAULT_CONNECTION_ID = 0;
30 static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)();
31 
32 
33 struct EncodedVideoFrameInfo;
34 
38 enum AudioRoute
39 {
43  ROUTE_DEFAULT = -1,
47  ROUTE_HEADSET,
51  ROUTE_EARPIECE,
55  ROUTE_HEADSETNOMIC,
59  ROUTE_SPEAKERPHONE,
63  ROUTE_LOUDSPEAKER,
67  ROUTE_HEADSETBLUETOOTH,
71  ROUTE_HDMI,
75  ROUTE_USB
76 };
77 
81 enum BYTES_PER_SAMPLE {
85  TWO_BYTES_PER_SAMPLE = 2,
86 };
87 
89  int sample_rate;
90  size_t channels;
91  size_t frames_per_buffer;
92 
94  : sample_rate(0),
95  channels(0),
96  frames_per_buffer(0) {}
97 };
98 
99 enum RAW_AUDIO_FRAME_OP_MODE_TYPE {
104  RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0,
105 
110  RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2,
111 };
112 
113 } // namespace rtc
114 
115 namespace media {
119 enum MEDIA_SOURCE_TYPE {
123  AUDIO_PLAYOUT_SOURCE = 0,
127  AUDIO_RECORDING_SOURCE = 1,
131  PRIMARY_CAMERA_SOURCE = 2,
135  SECONDARY_CAMERA_SOURCE = 3,
139  PRIMARY_SCREEN_SOURCE = 4,
143  SECONDARY_SCREEN_SOURCE = 5,
147  CUSTOM_VIDEO_SOURCE = 6,
151  MEDIA_PLAYER_SOURCE = 7,
155  RTC_IMAGE_PNG_SOURCE = 8,
159  RTC_IMAGE_JPEG_SOURCE = 9,
163  RTC_IMAGE_GIF_SOURCE = 10,
167  REMOTE_VIDEO_SOURCE = 11,
171  TRANSCODED_VIDEO_SOURCE = 12,
175  UNKNOWN_MEDIA_SOURCE = 100
176 };
179 #define MAX_CONTENT_INSPECT_MODULE_COUNT 32
180 enum CONTENT_INSPECT_RESULT {
181  CONTENT_INSPECT_NEUTRAL = 1,
182  CONTENT_INSPECT_SEXY = 2,
183  CONTENT_INSPECT_PORN = 3,
184 };
185 enum CONTENT_INSPECT_VENDOR { CONTENT_INSPECT_VENDOR_AGORA = 1, CONTENT_INSPECT_VENDOR_TUPU = 2, CONTENT_INSPECT_VENDOR_HIVE = 3 };
186 enum CONTENT_INSPECT_DEVICE_TYPE{
187  CONTENT_INSPECT_DEVICE_INVALID = 0,
188  CONTENT_INSPECT_DEVICE_AGORA = 1
189 };
190 enum CONTENT_INSPECT_TYPE {
194 CONTENT_INSPECT_INVALID = 0,
198 CONTENT_INSPECT_MODERATION = 1,
202 CONTENT_INSPECT_SUPERVISION = 2
203 };
204 
205 enum CONTENT_INSPECT_WORK_TYPE {
209 CONTENT_INSPECT_WORK_DEVICE = 0,
213 CONTENT_INSPECT_WORK_CLOUD = 1,
217 CONTENT_INSPECT_WORK_DEVICE_CLOUD = 2
218 };
223  CONTENT_INSPECT_TYPE type;
224  CONTENT_INSPECT_VENDOR vendor;
225  const char* callbackUrl;
226  const char* token;
230  unsigned int frequency;
232  type = CONTENT_INSPECT_INVALID;
233  frequency = 0;
234  vendor = CONTENT_INSPECT_VENDOR_AGORA;
235  callbackUrl = NULL;
236  token = NULL;
237  }
238 };
243  CONTENT_INSPECT_WORK_TYPE ContentWorkType;
244 
246  CONTENT_INSPECT_DEVICE_TYPE DeviceworkType;
247  const char* extraInfo;
248 
252  ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT];
256  ContentInspectConfig& operator=(const ContentInspectConfig& rth)
257  {
260  extraInfo = rth.extraInfo;
261  moduleCount = rth.moduleCount;
262  memcpy(&modules, &rth.modules, MAX_CONTENT_INSPECT_MODULE_COUNT * sizeof(ContentInspectModule));
263  return *this;
264  }
265  ContentInspectConfig() :ContentWorkType(CONTENT_INSPECT_WORK_CLOUD),DeviceworkType(CONTENT_INSPECT_DEVICE_INVALID),extraInfo(NULL), moduleCount(0){}
266 };
267 
268 namespace base {
269 
270 typedef void* view_t;
271 
272 typedef const char* user_id_t;
273 
274 static const uint8_t kMaxCodecNameLength = 50;
275 
279 enum MAX_METADATA_SIZE_TYPE {
280  MAX_METADATA_SIZE_IN_BYTE = 1024
281 };
282 
291  uint32_t timestamp;
292  // Audio level indication.
293  uint8_t audioLevelIndication;
294  PacketOptions()
295  : timestamp(0),
296  audioLevelIndication(127) {}
297 };
298 
307  // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
314  kMaxDataSizeSamples = 3840,
316  kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
317  };
318 
333  rtc::BYTES_PER_SAMPLE bytes_per_sample;
335  int16_t data_[kMaxDataSizeSamples];
336 
337  AudioPcmFrame& operator=(const AudioPcmFrame& src) {
338  if(this == &src) {
339  return *this;
340  }
341 
342  this->capture_timestamp = src.capture_timestamp;
343  this->samples_per_channel_ = src.samples_per_channel_;
344  this->sample_rate_hz_ = src.sample_rate_hz_;
345  this->bytes_per_sample = src.bytes_per_sample;
346  this->num_channels_ = src.num_channels_;
347 
348  size_t length = src.samples_per_channel_ * src.num_channels_;
349  if (length > kMaxDataSizeSamples) {
350  length = kMaxDataSizeSamples;
351  }
352 
353  memcpy(this->data_, src.data_, length * sizeof(int16_t));
354 
355  return *this;
356  }
357 
358  AudioPcmFrame()
359  : capture_timestamp(0),
361  sample_rate_hz_(0),
362  num_channels_(0),
363  bytes_per_sample(rtc::TWO_BYTES_PER_SAMPLE) {
364  memset(data_, 0, sizeof(data_));
365  }
366 
367  AudioPcmFrame(const AudioPcmFrame& src)
373  size_t length = src.samples_per_channel_ * src.num_channels_;
374  if (length > kMaxDataSizeSamples) {
375  length = kMaxDataSizeSamples;
376  }
377 
378  memcpy(this->data_, src.data_, length * sizeof(int16_t));
379  }
380 };
381 
384 enum AUDIO_DUAL_MONO_MODE {
386  AUDIO_DUAL_MONO_STEREO = 0,
388  AUDIO_DUAL_MONO_L = 1,
390  AUDIO_DUAL_MONO_R = 2,
392  AUDIO_DUAL_MONO_MIX = 3
393 };
394 
396  public:
405  virtual void onFrame(AudioPcmFrame* frame) = 0;
406  virtual ~IAudioFrameObserver() {}
407 };
408 
412 enum VIDEO_PIXEL_FORMAT {
416  VIDEO_PIXEL_UNKNOWN = 0,
420  VIDEO_PIXEL_I420 = 1,
424  VIDEO_PIXEL_BGRA = 2,
428  VIDEO_PIXEL_NV21 = 3,
432  VIDEO_PIXEL_RGBA = 4,
436  VIDEO_PIXEL_NV12 = 8,
440  VIDEO_TEXTURE_2D = 10,
444  VIDEO_TEXTURE_OES = 11,
448  VIDEO_PIXEL_I422 = 16,
449 };
450 
454 enum RENDER_MODE_TYPE {
459  RENDER_MODE_HIDDEN = 1,
465  RENDER_MODE_FIT = 2,
470  RENDER_MODE_ADAPTIVE = 3,
471 };
478  format(VIDEO_PIXEL_UNKNOWN),
479  buffer(NULL),
480  stride(0),
481  height(0),
482  cropLeft(0),
483  cropTop(0),
484  cropRight(0),
485  cropBottom(0),
486  rotation(0),
487  timestamp(0),
488  eglContext(NULL),
490  textureId(0),
491  metadata_buffer(NULL),
492  metadata_size(0){}
493 
506  };
507 
524  };
525 
533  VIDEO_PIXEL_FORMAT format;
537  void* buffer;
542  int stride;
546  int height;
551  int cropLeft;
556  int cropTop;
571  int rotation;
576  long long timestamp;
582  void *eglContext;
595  uint8_t* metadata_buffer;
601 };
602 
606 struct VideoFrame {
607  VideoFrame():
608  type(VIDEO_PIXEL_UNKNOWN),
609  width(0),
610  height(0),
611  yStride(0),
612  uStride(0),
613  vStride(0),
614  yBuffer(NULL),
615  uBuffer(NULL),
616  vBuffer(NULL),
617  rotation(0),
618  renderTimeMs(0),
619  avsync_type(0),
620  metadata_buffer(NULL),
621  metadata_size(0){}
622 
626  VIDEO_PIXEL_FORMAT type;
630  int width;
634  int height;
638  int yStride;
642  int uStride;
646  int vStride;
650  uint8_t* yBuffer;
654  uint8_t* uBuffer;
658  uint8_t* vBuffer;
662  int rotation;
669  int64_t renderTimeMs;
678  uint8_t* metadata_buffer;
684 };
685 
687  public:
695  virtual void onFrame(const VideoFrame* frame) = 0;
696  virtual ~IVideoFrameObserver() {}
697  virtual bool isExternal() { return true; }
698  virtual VIDEO_PIXEL_FORMAT getVideoPixelFormatPreference() { return VIDEO_PIXEL_UNKNOWN; }
699 };
700 
701 enum MEDIA_PLAYER_SOURCE_TYPE {
707  MEDIA_PLAYER_SOURCE_DEFAULT,
713  MEDIA_PLAYER_SOURCE_FULL_FEATURED,
718  MEDIA_PLAYER_SOURCE_SIMPLE,
719 };
720 
721 enum VIDEO_MODULE_POSITION {
722  POSITION_POST_CAPTURER = 1 << 0,
723  POSITION_PRE_RENDERER = 1 << 1,
724  POSITION_PRE_ENCODER = 1 << 2,
725  POSITION_POST_FILTERS = 1 << 3,
726 };
727 
728 } // namespace base
729 
734  public:
743  };
747  struct AudioFrame {
759  agora::rtc::BYTES_PER_SAMPLE bytesPerSample;
763  int channels;
771  void* buffer;
779  int64_t renderTimeMs;
780  int avsync_type;
781 
784  bytesPerSample(rtc::TWO_BYTES_PER_SAMPLE),
785  channels(0),
786  samplesPerSec(0),
787  buffer(NULL),
788  renderTimeMs(0),
789  avsync_type(0) {}
790  };
791 
792  public:
793  virtual ~IAudioFrameObserverBase() {}
794 
802  virtual bool onRecordAudioFrame(AudioFrame& audioFrame) = 0;
810  virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0;
818  virtual bool onMixedAudioFrame(AudioFrame& audioFrame) = 0;
827  virtual bool onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame& audioFrame) {
828  (void) userId;
829  (void) audioFrame;
830  return true;
831  }
832 };
833 
838  public:
848  virtual bool onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame& audioFrame) = 0;
849 };
850 
855  const float *audioSpectrumData;
860 
862  AudioSpectrumData(const float *data, int length) :
863  audioSpectrumData(data), dataLength(length) {}
864 };
865 
870  agora::rtc::uid_t uid;
875 
877  UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length) :
878  uid(_uid) { spectrumData.audioSpectrumData = data; spectrumData.dataLength = length; }
879 };
880 
885 public:
886  virtual ~IAudioSpectrumObserver() {}
887 
900  virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
901 
919  virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo * spectrums, unsigned int spectrumNumber) = 0;
920 };
921 
926  public:
937  virtual bool OnEncodedVideoFrame(rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
938  const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
939 
940  virtual ~IVideoEncodedFrameObserver() {}
941 };
942 
947  public:
949 
950  enum VIDEO_FRAME_PROCESS_MODE {
951  PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original frame.
952  PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and affect the following frame processing in SDK.
953  };
954 
955  public:
956  virtual ~IVideoFrameObserver() {}
957 
973  virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) = 0;
974 
975  virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame& videoFrame) = 0;
976 
992  virtual bool onScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
1009  virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
1010 
1011  virtual bool onSecondaryScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
1012 
1030  virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame) = 0;
1031 
1032  virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
1033 
1038  virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode() {
1039  return PROCESS_MODE_READ_ONLY;
1040  }
1041 
1042  /*
1043  * Occurs each time needs to get preference video frame type.
1044  *
1045  * @return preference video pixel format.
1046  */
1047  virtual base::VIDEO_PIXEL_FORMAT getVideoPixelFormatPreference() { return base::VIDEO_PIXEL_I420; }
1048 
1054  virtual int getRotationApplied() { return 0; }
1055 
1063  virtual bool getMirrorApplied() { return false; }
1064 
1072  virtual bool isExternal() { return true; }
1073 };
1074 
1075 } // namespace media
1076 } // namespace agora
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:606
agora::media::base::ExternalVideoFrame::cropBottom
int cropBottom
Definition: AgoraMediaBase.h:566
agora::media::base::VideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:683
agora::media::AudioSpectrumData::audioSpectrumData
const float * audioSpectrumData
Definition: AgoraMediaBase.h:855
agora::media::IAudioFrameObserverBase
Definition: AgoraMediaBase.h:733
agora::media::ContentInspectConfig::modules
ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]
Definition: AgoraMediaBase.h:252
agora::media::base::VideoFrame::uStride
int uStride
Definition: AgoraMediaBase.h:642
agora::media::IAudioFrameObserverBase::FRAME_TYPE_PCM16
@ FRAME_TYPE_PCM16
Definition: AgoraMediaBase.h:742
agora::media::base::VideoFrame::height
int height
Definition: AgoraMediaBase.h:634
agora::media::base::AudioPcmFrame::data_
int16_t data_[kMaxDataSizeSamples]
Definition: AgoraMediaBase.h:335
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:884
agora::rtc::AudioParameters
Definition: AgoraMediaBase.h:88
agora::media::IAudioFrameObserverBase::AudioFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:779
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_RAW_DATA
@ VIDEO_BUFFER_RAW_DATA
Definition: AgoraMediaBase.h:515
agora::media::IAudioFrameObserver::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame &audioFrame)=0
agora::media::base::ExternalVideoFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:537
agora::media::IAudioFrameObserverBase::AudioFrame::channels
int channels
Definition: AgoraMediaBase.h:763
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1701
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TYPE
VIDEO_BUFFER_TYPE
Definition: AgoraMediaBase.h:511
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:686
agora::media::IVideoFrameObserver::getVideoFrameProcessMode
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Definition: AgoraMediaBase.h:1038
agora::media::ContentInspectConfig::DeviceworkType
CONTENT_INSPECT_DEVICE_TYPE DeviceworkType
Definition: AgoraMediaBase.h:246
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:946
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:747
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:837
agora::media::base::VideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:662
agora::media::base::IVideoFrameObserver::onFrame
virtual void onFrame(const VideoFrame *frame)=0
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrame
virtual bool onPlaybackAudioFrame(AudioFrame &audioFrame)=0
agora::media::base::AudioPcmFrame::OPTIONAL_ENUM_SIZE_T
OPTIONAL_ENUM_SIZE_T
Definition: AgoraMediaBase.h:306
agora::media::base::ExternalVideoFrame::eglContext
void * eglContext
Definition: AgoraMediaBase.h:582
agora::media::base::ExternalVideoFrame::cropRight
int cropRight
Definition: AgoraMediaBase.h:561
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_ARRAY
@ VIDEO_BUFFER_ARRAY
Definition: AgoraMediaBase.h:519
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TEXTURE
@ VIDEO_BUFFER_TEXTURE
Definition: AgoraMediaBase.h:523
agora::media::base::VideoFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:673
agora::media::base::ExternalVideoFrame::cropLeft
int cropLeft
Definition: AgoraMediaBase.h:551
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerSec
int samplesPerSec
Definition: AgoraMediaBase.h:767
agora::media::ContentInspectModule
Definition: AgoraMediaBase.h:219
agora::media::IAudioFrameObserverBase::AudioFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:771
agora::media::IAudioSpectrumObserver::onRemoteAudioSpectrum
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:475
agora::media::ContentInspectModule::frequency
unsigned int frequency
Definition: AgoraMediaBase.h:230
agora::media::IVideoFrameObserver::getRotationApplied
virtual int getRotationApplied()
Definition: AgoraMediaBase.h:1054
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::ContentInspectConfig::moduleCount
int moduleCount
Definition: AgoraMediaBase.h:255
agora::media::base::AudioPcmFrame::capture_timestamp
uint32_t capture_timestamp
Definition: AgoraMediaBase.h:321
agora::media::base::VideoFrame::type
VIDEO_PIXEL_FORMAT type
Definition: AgoraMediaBase.h:626
agora::media::base::ExternalVideoFrame::timestamp
long long timestamp
Definition: AgoraMediaBase.h:576
agora::media::IVideoFrameObserver::onScreenCaptureVideoFrame
virtual bool onScreenCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::AudioPcmFrame::sample_rate_hz_
int sample_rate_hz_
Definition: AgoraMediaBase.h:327
agora::media::IAudioFrameObserverBase::onRecordAudioFrame
virtual bool onRecordAudioFrame(AudioFrame &audioFrame)=0
agora::media::IAudioFrameObserverBase::onMixedAudioFrame
virtual bool onMixedAudioFrame(AudioFrame &audioFrame)=0
agora::media::base::ExternalVideoFrame::height
int height
Definition: AgoraMediaBase.h:546
agora::media::base::ExternalVideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:571
agora::media::UserAudioSpectrumInfo::spectrumData
struct AudioSpectrumData spectrumData
Definition: AgoraMediaBase.h:874
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:287
agora::media::base::PacketOptions::timestamp
uint32_t timestamp
Definition: AgoraMediaBase.h:291
agora::media::base::IAudioFrameObserver::onFrame
virtual void onFrame(AudioPcmFrame *frame)=0
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_TYPE
AUDIO_FRAME_TYPE
Definition: AgoraMediaBase.h:738
agora::media::base::VideoFrame::yBuffer
uint8_t * yBuffer
Definition: AgoraMediaBase.h:650
agora::media::base::AudioPcmFrame::bytes_per_sample
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition: AgoraMediaBase.h:333
agora::media::UserAudioSpectrumInfo
Definition: AgoraMediaBase.h:866
agora::media::IVideoFrameObserver::onRenderVideoFrame
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
agora::media::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:1072
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame &audioFrame)
Definition: AgoraMediaBase.h:827
agora::media::base::VideoFrame::yStride
int yStride
Definition: AgoraMediaBase.h:638
agora::media::base::ExternalVideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:595
agora::media::ContentInspectModule::type
CONTENT_INSPECT_TYPE type
Definition: AgoraMediaBase.h:223
agora::media::base::ExternalVideoFrame::EGL_CONTEXT14
@ EGL_CONTEXT14
Definition: AgoraMediaBase.h:505
agora::media::base::ExternalVideoFrame::cropTop
int cropTop
Definition: AgoraMediaBase.h:556
agora::media::base::ExternalVideoFrame::type
VIDEO_BUFFER_TYPE type
Definition: AgoraMediaBase.h:529
agora::media::base::VideoFrame::vBuffer
uint8_t * vBuffer
Definition: AgoraMediaBase.h:658
agora::media::AudioSpectrumData::dataLength
int dataLength
Definition: AgoraMediaBase.h:859
agora::media::base::ExternalVideoFrame::EGL_CONTEXT_TYPE
EGL_CONTEXT_TYPE
Definition: AgoraMediaBase.h:497
agora::media::base::AudioPcmFrame::num_channels_
size_t num_channels_
Definition: AgoraMediaBase.h:330
agora::media::base::VideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:678
agora::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:395
agora::media::AudioSpectrumData
Definition: AgoraMediaBase.h:851
agora::media::base::VideoFrame::width
int width
Definition: AgoraMediaBase.h:630
agora::media::base::VideoFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:669
agora::media::base::ExternalVideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:600
agora::media::base::AudioPcmFrame::samples_per_channel_
size_t samples_per_channel_
Definition: AgoraMediaBase.h:324
agora::media::IVideoFrameObserver::onMediaPlayerVideoFrame
virtual bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId)=0
agora::media::IAudioFrameObserverBase::AudioFrame::bytesPerSample
agora::rtc::BYTES_PER_SAMPLE bytesPerSample
Definition: AgoraMediaBase.h:759
agora::media::base::ExternalVideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:590
agora::media::IAudioFrameObserverBase::AudioFrame::type
AUDIO_FRAME_TYPE type
Definition: AgoraMediaBase.h:751
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:925
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerChannel
int samplesPerChannel
Definition: AgoraMediaBase.h:755
agora::media::IVideoFrameObserver::getMirrorApplied
virtual bool getMirrorApplied()
Definition: AgoraMediaBase.h:1063
agora::media::IAudioSpectrumObserver::onLocalAudioSpectrum
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
agora::media::base::VideoFrame::vStride
int vStride
Definition: AgoraMediaBase.h:646
agora::media::ContentInspectConfig
Definition: AgoraMediaBase.h:241
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:302
agora::media::IVideoFrameObserver::onCaptureVideoFrame
virtual bool onCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::ContentInspectConfig::ContentWorkType
CONTENT_INSPECT_WORK_TYPE ContentWorkType
Definition: AgoraMediaBase.h:243
agora::media::base::VideoFrame::uBuffer
uint8_t * uBuffer
Definition: AgoraMediaBase.h:654
agora::media::base::ExternalVideoFrame::EGL_CONTEXT10
@ EGL_CONTEXT10
Definition: AgoraMediaBase.h:501
agora::media::UserAudioSpectrumInfo::uid
agora::rtc::uid_t uid
Definition: AgoraMediaBase.h:870
agora::media::base::ExternalVideoFrame::format
VIDEO_PIXEL_FORMAT format
Definition: AgoraMediaBase.h:533
agora::media::base::ExternalVideoFrame::stride
int stride
Definition: AgoraMediaBase.h:542
agora::media::base::ExternalVideoFrame::eglType
EGL_CONTEXT_TYPE eglType
Definition: AgoraMediaBase.h:586