Agora C++ API Reference for All Platforms
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 
34 
39 {
75  ROUTE_USB
76 };
77 
86 };
87 
90  size_t channels;
92 
94  : sample_rate(0),
95  channels(0),
96  frames_per_buffer(0) {}
97 };
98 
105 
111 };
112 
113 } // namespace rtc
114 
115 namespace media {
116 namespace base {
117 
118 typedef void* view_t;
119 
120 typedef const char* user_id_t;
121 
122 static const uint8_t kMaxCodecNameLength = 50;
123 
129 };
130 
139  uint32_t timestamp;
140  // Audio level indication.
143  : timestamp(0),
144  audioLevelIndication(127) {}
145 };
146 
155  // Stereo, 32 kHz, 60 ms (2 * 32 * 60)
162  kMaxDataSizeSamples = 3840,
164  kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t),
165  };
166 
183  int16_t data_[kMaxDataSizeSamples];
184 
186  if(this == &src) {
187  return *this;
188  }
189 
190  this->capture_timestamp = src.capture_timestamp;
191  this->samples_per_channel_ = src.samples_per_channel_;
192  this->sample_rate_hz_ = src.sample_rate_hz_;
193  this->bytes_per_sample = src.bytes_per_sample;
194  this->num_channels_ = src.num_channels_;
195 
196  size_t length = src.samples_per_channel_ * src.num_channels_;
197  if ( length > kMaxDataSizeSamples) {
198  length = kMaxDataSizeSamples;
199  }
200 
201  memcpy(this->data_, src.data_, length * sizeof(int16_t));
202 
203  return *this;
204  }
205 
209  sample_rate_hz_(0),
210  num_channels_(0),
211  bytes_per_sample(rtc::TWO_BYTES_PER_SAMPLE) {
212  memset(data_, 0, sizeof(data_));
213  }
214 };
215 
217  public:
226  virtual void onFrame(AudioPcmFrame* frame) = 0;
227  virtual ~IAudioFrameObserver() {}
228 };
229 
270 };
271 
292 };
293 
301  buffer(NULL),
302  stride(0),
303  height(0),
304  cropLeft(0),
305  cropTop(0),
306  cropRight(0),
307  cropBottom(0),
308  rotation(0),
309  timestamp(0),
310  eglContext(NULL),
312  textureId(0),
313  metadata_buffer(NULL),
314  metadata_size(0){}
315 
328  };
329 
346  };
347 
359  void* buffer;
364  int stride;
368  int height;
373  int cropLeft;
378  int cropTop;
393  int rotation;
398  long long timestamp;
404  void *eglContext;
417  uint8_t* metadata_buffer;
423 };
424 
428 struct VideoFrame {
431  width(0),
432  height(0),
433  yStride(0),
434  uStride(0),
435  vStride(0),
436  yBuffer(NULL),
437  uBuffer(NULL),
438  vBuffer(NULL),
439  rotation(0),
440  renderTimeMs(0),
441  avsync_type(0),
442  metadata_buffer(NULL),
443  metadata_size(0){}
444 
452  int width;
456  int height;
460  int yStride;
464  int uStride;
468  int vStride;
472  uint8_t* yBuffer;
476  uint8_t* uBuffer;
480  uint8_t* vBuffer;
484  int rotation;
491  int64_t renderTimeMs;
500  uint8_t* metadata_buffer;
506 };
507 
509  public:
517  virtual void onFrame(const VideoFrame* frame) = 0;
518  virtual ~IVideoFrameObserver() {}
519  virtual bool isExternal() { return true; }
520 };
521 
540 };
541 
547 };
548 
549 } // namespace base
550 
555  public:
564  };
568  struct AudioFrame {
584  int channels;
592  void* buffer;
600  int64_t renderTimeMs;
602 
605  bytesPerSample(rtc::TWO_BYTES_PER_SAMPLE),
606  channels(0),
607  samplesPerSec(0),
608  buffer(NULL),
609  renderTimeMs(0),
610  avsync_type(0) {}
611  };
612 
613  public:
615 
623  virtual bool onRecordAudioFrame(AudioFrame& audioFrame) = 0;
631  virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0;
639  virtual bool onMixedAudioFrame(AudioFrame& audioFrame) = 0;
648  virtual bool onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame& audioFrame) {
649  (void) userId;
650  (void) audioFrame;
651  return true;
652  }
653 };
654 
659  public:
669  virtual bool onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame& audioFrame) = 0;
670 };
671 
676  const float *audioSpectrumData;
681 
683  AudioSpectrumData(const float *data, int length) :
684  audioSpectrumData(data), dataLength(length) {}
685 };
686 
696 
698  UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length) :
699  uid(_uid) { spectrumData.audioSpectrumData = data; spectrumData.dataLength = length; }
700 };
701 
706 public:
708 
721  virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0;
722 
740  virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo * spectrums, unsigned int spectrumNumber) = 0;
741 };
742 
747  public:
758  virtual bool OnEncodedVideoFrame(rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,
759  const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
760 
762 };
763 
768  public:
770 
772  PROCESS_MODE_READ_ONLY, // Observer works as a pure renderer and will not modify the original frame.
773  PROCESS_MODE_READ_WRITE, // Observer works as a filter that will process the video frame and affect the following frame processing in SDK.
774  };
775 
776  public:
777  virtual ~IVideoFrameObserver() {}
778 
794  virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) = 0;
795 
796  virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame& videoFrame) = 0;
797 
813  virtual bool onScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
830  virtual bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) = 0;
831 
832  virtual bool onSecondaryScreenCaptureVideoFrame(VideoFrame& videoFrame) = 0;
833 
851  virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame) = 0;
852 
853  virtual bool onTranscodedVideoFrame(VideoFrame& videoFrame) = 0;
854 
860  return PROCESS_MODE_READ_ONLY;
861  }
862 
863  /*
864  * Occurs each time needs to get preference video frame type.
865  *
866  * @return preference video pixel format.
867  */
869 
875  virtual int getRotationApplied() { return 0; }
876 
884  virtual bool getMirrorApplied() { return false; }
885 
893  virtual bool isExternal() { return true; }
894 };
895 
896 } // namespace media
897 } // namespace agora
agora::rtc::AudioParameters::sample_rate
int sample_rate
Definition: AgoraMediaBase.h:89
agora::media::base::VIDEO_PIXEL_NV21
@ VIDEO_PIXEL_NV21
Definition: AgoraMediaBase.h:249
agora::media::base::AudioPcmFrame::AudioPcmFrame
AudioPcmFrame()
Definition: AgoraMediaBase.h:206
agora::media::base::MAX_METADATA_SIZE_TYPE
MAX_METADATA_SIZE_TYPE
Definition: AgoraMediaBase.h:127
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_ONLY
@ PROCESS_MODE_READ_ONLY
Definition: AgoraMediaBase.h:772
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:428
agora::media::base::ExternalVideoFrame::cropBottom
int cropBottom
Definition: AgoraMediaBase.h:388
agora::media::base::VideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:505
agora::media::base::POSITION_PRE_RENDERER
@ POSITION_PRE_RENDERER
Definition: AgoraMediaBase.h:544
agora::media::base::IAudioFrameObserver::~IAudioFrameObserver
virtual ~IAudioFrameObserver()
Definition: AgoraMediaBase.h:227
agora::media::AudioSpectrumData::audioSpectrumData
const float * audioSpectrumData
Definition: AgoraMediaBase.h:676
agora::media::base::VIDEO_PIXEL_FORMAT
VIDEO_PIXEL_FORMAT
Definition: AgoraMediaBase.h:233
agora::media::IAudioFrameObserverBase
Definition: AgoraMediaBase.h:554
agora::media::base::VideoFrame::uStride
int uStride
Definition: AgoraMediaBase.h:464
agora::rtc::AudioParameters::AudioParameters
AudioParameters()
Definition: AgoraMediaBase.h:93
agora::rtc::AudioParameters::channels
size_t channels
Definition: AgoraMediaBase.h:90
agora::media::IAudioFrameObserverBase::FRAME_TYPE_PCM16
@ FRAME_TYPE_PCM16
Definition: AgoraMediaBase.h:563
agora::media::base::kMaxCodecNameLength
static const uint8_t kMaxCodecNameLength
Definition: AgoraMediaBase.h:122
agora::media::base::MEDIA_PLAYER_SOURCE_TYPE
MEDIA_PLAYER_SOURCE_TYPE
Definition: AgoraMediaBase.h:522
agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition: AgoraMediaBase.h:528
agora::media::base::VideoFrame::height
int height
Definition: AgoraMediaBase.h:456
agora::media::base::AudioPcmFrame::data_
int16_t data_[kMaxDataSizeSamples]
Definition: AgoraMediaBase.h:183
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:705
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData(const float *data, int length)
Definition: AgoraMediaBase.h:683
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition: AgoraMediaBase.h:543
agora::rtc::AudioParameters
Definition: AgoraMediaBase.h:88
agora::media::IAudioFrameObserverBase::AudioFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:600
agora::media::base::MAX_METADATA_SIZE_IN_BYTE
@ MAX_METADATA_SIZE_IN_BYTE
Definition: AgoraMediaBase.h:128
agora::media::base::RENDER_MODE_FIT
@ RENDER_MODE_FIT
Definition: AgoraMediaBase.h:286
agora::media::base::VideoFrame::VideoFrame
VideoFrame()
Definition: AgoraMediaBase.h:429
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_RAW_DATA
@ VIDEO_BUFFER_RAW_DATA
Definition: AgoraMediaBase.h:337
agora::media::IAudioFrameObserver::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(rtc::uid_t uid, AudioFrame &audioFrame)=0
agora::media::base::ExternalVideoFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:359
agora::media::IAudioFrameObserverBase::AudioFrame::channels
int channels
Definition: AgoraMediaBase.h:584
agora::media::base::VIDEO_TEXTURE_OES
@ VIDEO_TEXTURE_OES
Definition: AgoraMediaBase.h:265
agora::rtc::ROUTE_HEADSETBLUETOOTH
@ ROUTE_HEADSETBLUETOOTH
Definition: AgoraMediaBase.h:67
agora::media::IAudioFrameObserverBase::AudioFrame::AudioFrame
AudioFrame()
Definition: AgoraMediaBase.h:603
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1700
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TYPE
VIDEO_BUFFER_TYPE
Definition: AgoraMediaBase.h:333
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:508
agora::media::base::user_id_t
const char * user_id_t
Definition: AgoraMediaBase.h:120
agora::rtc::ROUTE_HEADSET
@ ROUTE_HEADSET
Definition: AgoraMediaBase.h:47
agora::media::IVideoFrameObserver::getVideoFrameProcessMode
virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode()
Definition: AgoraMediaBase.h:859
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:767
agora::media::base::AudioPcmFrame::operator=
AudioPcmFrame & operator=(const AudioPcmFrame &src)
Definition: AgoraMediaBase.h:185
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:568
agora::media::base::VIDEO_TEXTURE_2D
@ VIDEO_TEXTURE_2D
Definition: AgoraMediaBase.h:261
agora::media::base::view_t
void * view_t
Definition: AgoraMediaBase.h:118
agora::media::base::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:518
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:658
agora::media::base::VideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:484
agora::rtc::BYTES_PER_SAMPLE
BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:81
agora::media::base::IVideoFrameObserver::onFrame
virtual void onFrame(const VideoFrame *frame)=0
agora::media::base::MEDIA_PLAYER_SOURCE_FULL_FEATURED
@ MEDIA_PLAYER_SOURCE_FULL_FEATURED
Definition: AgoraMediaBase.h:534
agora::rtc::conn_id_t
unsigned int conn_id_t
Definition: AgoraMediaBase.h:27
agora::media::base::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:519
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:154
agora::media::base::ExternalVideoFrame::eglContext
void * eglContext
Definition: AgoraMediaBase.h:404
agora::media::base::ExternalVideoFrame::cropRight
int cropRight
Definition: AgoraMediaBase.h:383
agora::media::base::RENDER_MODE_ADAPTIVE
@ RENDER_MODE_ADAPTIVE
Definition: AgoraMediaBase.h:291
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_ARRAY
@ VIDEO_BUFFER_ARRAY
Definition: AgoraMediaBase.h:341
agora::media::base::ExternalVideoFrame::VIDEO_BUFFER_TEXTURE
@ VIDEO_BUFFER_TEXTURE
Definition: AgoraMediaBase.h:345
agora::media::base::VideoFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:495
agora
Definition: AgoraAtomicOps.h:21
agora::media::base::ExternalVideoFrame::cropLeft
int cropLeft
Definition: AgoraMediaBase.h:373
agora::rtc::track_id_t
unsigned int track_id_t
Definition: AgoraMediaBase.h:26
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerSec
int samplesPerSec
Definition: AgoraMediaBase.h:588
agora::media::base::VIDEO_PIXEL_I422
@ VIDEO_PIXEL_I422
Definition: AgoraMediaBase.h:269
agora::media::IAudioFrameObserverBase::AudioFrame::buffer
void * buffer
Definition: AgoraMediaBase.h:592
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: AgoraMediaBase.h:99
agora::media::IAudioSpectrumObserver::onRemoteAudioSpectrum
virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo *spectrums, unsigned int spectrumNumber)=0
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:297
agora::media::IVideoFrameObserver::getRotationApplied
virtual int getRotationApplied()
Definition: AgoraMediaBase.h:875
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::ExternalVideoFrame::ExternalVideoFrame
ExternalVideoFrame()
Definition: AgoraMediaBase.h:298
agora::media::base::AudioPcmFrame::capture_timestamp
uint32_t capture_timestamp
Definition: AgoraMediaBase.h:169
agora::media::base::VideoFrame::type
VIDEO_PIXEL_FORMAT type
Definition: AgoraMediaBase.h:448
agora::media::IVideoFrameObserver::onSecondaryCameraCaptureVideoFrame
virtual bool onSecondaryCameraCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::rtc::ROUTE_DEFAULT
@ ROUTE_DEFAULT
Definition: AgoraMediaBase.h:43
agora::media::base::ExternalVideoFrame::timestamp
long long timestamp
Definition: AgoraMediaBase.h:398
agora::media::IVideoFrameObserver::onScreenCaptureVideoFrame
virtual bool onScreenCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::rtc::DEFAULT_CONNECTION_ID
static const unsigned int DEFAULT_CONNECTION_ID
Definition: AgoraMediaBase.h:29
agora::media::base::AudioPcmFrame::sample_rate_hz_
int sample_rate_hz_
Definition: AgoraMediaBase.h:175
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
@ RAW_AUDIO_FRAME_OP_MODE_READ_WRITE
Definition: AgoraMediaBase.h:110
agora::media::IVideoFrameObserver::onTranscodedVideoFrame
virtual bool onTranscodedVideoFrame(VideoFrame &videoFrame)=0
agora::media::IAudioFrameObserverBase::onRecordAudioFrame
virtual bool onRecordAudioFrame(AudioFrame &audioFrame)=0
agora::media::IAudioFrameObserverBase::onMixedAudioFrame
virtual bool onMixedAudioFrame(AudioFrame &audioFrame)=0
agora::rtc::ROUTE_EARPIECE
@ ROUTE_EARPIECE
Definition: AgoraMediaBase.h:51
agora::media::base::PacketOptions::PacketOptions
PacketOptions()
Definition: AgoraMediaBase.h:142
agora::media::base::ExternalVideoFrame::height
int height
Definition: AgoraMediaBase.h:368
agora::media::base::ExternalVideoFrame::rotation
int rotation
Definition: AgoraMediaBase.h:393
agora::rtc::ROUTE_USB
@ ROUTE_USB
Definition: AgoraMediaBase.h:75
agora::rtc::AudioParameters::frames_per_buffer
size_t frames_per_buffer
Definition: AgoraMediaBase.h:91
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo()
Definition: AgoraMediaBase.h:697
agora::media::UserAudioSpectrumInfo::spectrumData
struct AudioSpectrumData spectrumData
Definition: AgoraMediaBase.h:695
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:135
agora::media::base::PacketOptions::timestamp
uint32_t timestamp
Definition: AgoraMediaBase.h:139
agora::media::base::RENDER_MODE_HIDDEN
@ RENDER_MODE_HIDDEN
Definition: AgoraMediaBase.h:280
agora::media::base::IAudioFrameObserver::onFrame
virtual void onFrame(AudioPcmFrame *frame)=0
agora::media::IAudioFrameObserverBase::AUDIO_FRAME_TYPE
AUDIO_FRAME_TYPE
Definition: AgoraMediaBase.h:559
agora::media::base::VideoFrame::yBuffer
uint8_t * yBuffer
Definition: AgoraMediaBase.h:472
agora::media::base::AudioPcmFrame::bytes_per_sample
rtc::BYTES_PER_SAMPLE bytes_per_sample
Definition: AgoraMediaBase.h:181
agora::media::UserAudioSpectrumInfo
Definition: AgoraMediaBase.h:687
agora::media::IVideoFrameObserver::onSecondaryScreenCaptureVideoFrame
virtual bool onSecondaryScreenCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition: AgoraMediaBase.h:104
agora::media::IAudioFrameObserverBase::~IAudioFrameObserverBase
virtual ~IAudioFrameObserverBase()
Definition: AgoraMediaBase.h:614
agora::media::IVideoFrameObserver::onRenderVideoFrame
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame)=0
agora::media::IVideoFrameObserver::PROCESS_MODE_READ_WRITE
@ PROCESS_MODE_READ_WRITE
Definition: AgoraMediaBase.h:773
agora::media::IVideoFrameObserver::isExternal
virtual bool isExternal()
Definition: AgoraMediaBase.h:893
agora::media::IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing
virtual bool onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame &audioFrame)
Definition: AgoraMediaBase.h:648
agora::media::base::VideoFrame::yStride
int yStride
Definition: AgoraMediaBase.h:460
agora::media::base::POSITION_POST_FILTERS
@ POSITION_POST_FILTERS
Definition: AgoraMediaBase.h:546
agora::media::base::ExternalVideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:417
agora::media::base::PacketOptions::audioLevelIndication
uint8_t audioLevelIndication
Definition: AgoraMediaBase.h:141
agora::media::base::ExternalVideoFrame::EGL_CONTEXT14
@ EGL_CONTEXT14
Definition: AgoraMediaBase.h:327
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
Definition: AgoraMediaBase.h:542
agora::media::base::ExternalVideoFrame::cropTop
int cropTop
Definition: AgoraMediaBase.h:378
agora::media::base::ExternalVideoFrame::type
VIDEO_BUFFER_TYPE type
Definition: AgoraMediaBase.h:351
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:275
agora::media::IVideoFrameObserver::VideoFrame
media::base::VideoFrame VideoFrame
Definition: AgoraMediaBase.h:769
agora::media::IVideoFrameObserver::getVideoPixelFormatPreference
virtual base::VIDEO_PIXEL_FORMAT getVideoPixelFormatPreference()
Definition: AgoraMediaBase.h:868
agora::media::base::VideoFrame::vBuffer
uint8_t * vBuffer
Definition: AgoraMediaBase.h:480
agora::media::AudioSpectrumData::dataLength
int dataLength
Definition: AgoraMediaBase.h:680
agora::media::base::ExternalVideoFrame::EGL_CONTEXT_TYPE
EGL_CONTEXT_TYPE
Definition: AgoraMediaBase.h:319
agora::media::AudioSpectrumData::AudioSpectrumData
AudioSpectrumData()
Definition: AgoraMediaBase.h:682
agora::rtc::ROUTE_HEADSETNOMIC
@ ROUTE_HEADSETNOMIC
Definition: AgoraMediaBase.h:55
agora::media::UserAudioSpectrumInfo::UserAudioSpectrumInfo
UserAudioSpectrumInfo(agora::rtc::uid_t _uid, const float *data, int length)
Definition: AgoraMediaBase.h:698
agora::media::base::AudioPcmFrame::num_channels_
size_t num_channels_
Definition: AgoraMediaBase.h:178
agora::media::base::VIDEO_PIXEL_UNKNOWN
@ VIDEO_PIXEL_UNKNOWN
Definition: AgoraMediaBase.h:237
agora::media::IAudioFrameObserverBase::AudioFrame::avsync_type
int avsync_type
Definition: AgoraMediaBase.h:601
agora::media::base::VideoFrame::metadata_buffer
uint8_t * metadata_buffer
Definition: AgoraMediaBase.h:500
agora::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:216
agora::media::AudioSpectrumData
Definition: AgoraMediaBase.h:672
agora::media::base::VideoFrame::width
int width
Definition: AgoraMediaBase.h:452
agora::media::base::VideoFrame::renderTimeMs
int64_t renderTimeMs
Definition: AgoraMediaBase.h:491
agora::media::base::ExternalVideoFrame::metadata_size
int metadata_size
Definition: AgoraMediaBase.h:422
agora::media::base::AudioPcmFrame::samples_per_channel_
size_t samples_per_channel_
Definition: AgoraMediaBase.h:172
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:580
agora::media::IVideoFrameObserver::~IVideoFrameObserver
virtual ~IVideoFrameObserver()
Definition: AgoraMediaBase.h:777
agora::media::base::ExternalVideoFrame::textureId
int textureId
Definition: AgoraMediaBase.h:412
agora::media::IAudioSpectrumObserver::~IAudioSpectrumObserver
virtual ~IAudioSpectrumObserver()
Definition: AgoraMediaBase.h:707
agora::media::IAudioFrameObserverBase::AudioFrame::type
AUDIO_FRAME_TYPE type
Definition: AgoraMediaBase.h:572
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:746
agora::media::IAudioFrameObserverBase::AudioFrame::samplesPerChannel
int samplesPerChannel
Definition: AgoraMediaBase.h:576
agora::media::base::VIDEO_PIXEL_RGBA
@ VIDEO_PIXEL_RGBA
Definition: AgoraMediaBase.h:253
agora::media::base::MEDIA_PLAYER_SOURCE_SIMPLE
@ MEDIA_PLAYER_SOURCE_SIMPLE
Definition: AgoraMediaBase.h:539
agora::rtc::TWO_BYTES_PER_SAMPLE
@ TWO_BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:85
agora::media::IVideoFrameObserver::getMirrorApplied
virtual bool getMirrorApplied()
Definition: AgoraMediaBase.h:884
agora::media::IAudioSpectrumObserver::onLocalAudioSpectrum
virtual bool onLocalAudioSpectrum(const AudioSpectrumData &data)=0
agora::rtc::ROUTE_LOUDSPEAKER
@ ROUTE_LOUDSPEAKER
Definition: AgoraMediaBase.h:63
agora::media::base::VideoFrame::vStride
int vStride
Definition: AgoraMediaBase.h:468
agora::media::IVideoEncodedFrameObserver::~IVideoEncodedFrameObserver
virtual ~IVideoEncodedFrameObserver()
Definition: AgoraMediaBase.h:761
agora::media::base::VIDEO_PIXEL_I420
@ VIDEO_PIXEL_I420
Definition: AgoraMediaBase.h:241
agora::media::base::POSITION_PRE_ENCODER
@ POSITION_PRE_ENCODER
Definition: AgoraMediaBase.h:545
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:25
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:150
agora::media::IVideoFrameObserver::onCaptureVideoFrame
virtual bool onCaptureVideoFrame(VideoFrame &videoFrame)=0
agora::media::base::VIDEO_PIXEL_NV12
@ VIDEO_PIXEL_NV12
Definition: AgoraMediaBase.h:257
agora::rtc::ROUTE_SPEAKERPHONE
@ ROUTE_SPEAKERPHONE
Definition: AgoraMediaBase.h:59
agora::media::base::VideoFrame::uBuffer
uint8_t * uBuffer
Definition: AgoraMediaBase.h:476
agora::media::base::ExternalVideoFrame::EGL_CONTEXT10
@ EGL_CONTEXT10
Definition: AgoraMediaBase.h:323
agora::rtc::DUMMY_CONNECTION_ID
static const unsigned int DUMMY_CONNECTION_ID
Definition: AgoraMediaBase.h:30
agora::media::UserAudioSpectrumInfo::uid
agora::rtc::uid_t uid
Definition: AgoraMediaBase.h:691
rtc
Definition: video_node_i.h:27
agora::media::IVideoFrameObserver::VIDEO_FRAME_PROCESS_MODE
VIDEO_FRAME_PROCESS_MODE
Definition: AgoraMediaBase.h:771
agora::media::base::ExternalVideoFrame::format
VIDEO_PIXEL_FORMAT format
Definition: AgoraMediaBase.h:355
agora::media::base::ExternalVideoFrame::stride
int stride
Definition: AgoraMediaBase.h:364
agora::media::base::VIDEO_PIXEL_BGRA
@ VIDEO_PIXEL_BGRA
Definition: AgoraMediaBase.h:245
agora::rtc::ROUTE_HDMI
@ ROUTE_HDMI
Definition: AgoraMediaBase.h:71
agora::rtc::AudioRoute
AudioRoute
Definition: AgoraMediaBase.h:39
agora::media::base::ExternalVideoFrame::eglType
EGL_CONTEXT_TYPE eglType
Definition: AgoraMediaBase.h:408