Agora Java API Reference for Android
NGIAgoraMediaNode.h
1 #pragma once
2 #include "AgoraRefPtr.h"
3 #include "AgoraBase.h"
4 #include "IAgoraLog.h"
5 #include "NGIAgoraVideoFrame.h"
6 #include "AgoraExtensionVersion.h"
7 #include <api/aosl_ref.h>
8 
9 #ifndef OPTIONAL_PROCESSRESULT_SPECIFIER
10 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
11 #define OPTIONAL_PROCESSRESULT_SPECIFIER ProcessResult::
12 #else
13 #define OPTIONAL_PROCESSRESULT_SPECIFIER
14 #endif
15 #endif
16 
17 namespace webrtc {
18 struct AudioFrameHandleInfo;
19 } // namespace webrtc
20 
21 namespace agora {
22 namespace rtc {
28  public:
29  // Return false if filter decide to drop the frame.
30  // Implementation should not change samples_per_channel_/sample_rate_hz_/num_channels_
31  // Implementation should just adapt data of audio frame.
40  virtual bool adaptAudioFrame(const media::base::AudioPcmFrame& inAudioFrame,
41  media::base::AudioPcmFrame& adaptedFrame) = 0;
42 
50  virtual int getPreferredSampleRate() = 0;
51 
60  virtual int getPreferredChannelNumbers() = 0;
61 
62  protected:
63  ~IAudioFilterBase() {}
64 };
65 
73  public:
80  virtual void setEnabled(bool enable) = 0;
87  virtual bool isEnabled() const = 0;
98  virtual int setProperty(const char* key, const void* buf, int buf_size) = 0;
109  virtual int getProperty(const char* key, void* buf, int buf_size) const = 0;
117  virtual const char * getName() const = 0;
118 
127  virtual int getPreferredSampleRate() { return 0; };
128 
137  virtual int getPreferredChannelNumbers() { return 0; };
138 
139  protected:
140  ~IAudioFilter() {}
141 };
142 
148  public:
159  virtual bool adaptVideoFrame(const media::base::VideoFrame& capturedFrame,
160  media::base::VideoFrame& adaptedFrame) = 0;
161 };
162 
163 // TODO(Bob): private inherit?
172  public:
180  virtual void setEnabled(bool enable) {}
187  virtual bool isEnabled() { return true; }
198  virtual int setProperty(const char* key, const void* buf, size_t buf_size) { return -1; }
209  virtual int getProperty(const char* key, void* buf, size_t buf_size) { return -1; }
217  virtual bool onDataStreamWillStart() { return true; }
222  virtual void onDataStreamWillStop() { }
230  virtual bool isExternal() { return true; }
238  virtual bool isExtensionFilter() { return false; }
239 };
240 
248  public:
249  enum ProcessMode {
250  kSync, // Indicates that video frame data will be exchanged via "adaptVideoFrame"
251  kAsync, // Indicates that video frame data will be exchanged via "pendVideoFrame" & "deliverVideoFrame"
252  };
253 
254  enum ProcessResult {
255  kSuccess, // Video frame data is successfully processed
256  kBypass, // Video frame data should bypass the current filter and flow to its successsors
257  kDrop, // Video Frame data should be discarded
258  };
259 
267  class Control : public RefCountInterface {
268  public:
275  virtual ProcessResult deliverVideoFrame(agora::agora_refptr<IVideoFrame> frame) = 0;
286  virtual int postEvent(const char* key, const char* value) = 0;
293  virtual void printLog(commons::LOG_LEVEL level, const char* format, ...) = 0;
299  virtual void disableMe(int error, const char* msg) = 0;
300  };
301 
309  virtual void getProcessMode(ProcessMode& mode, bool& independent_thread) = 0;
310 
318  virtual int start(agora::agora_refptr<Control> control) = 0;
324  virtual int stop() = 0;
333  virtual void getVideoFormatWanted(VideoFrameData::Type& type, RawPixelBuffer::Format& format) = 0;
340  virtual ProcessResult pendVideoFrame(agora::agora_refptr<IVideoFrame> frame) {
341  return OPTIONAL_PROCESSRESULT_SPECIFIER kBypass;
342  }
349  return OPTIONAL_PROCESSRESULT_SPECIFIER kBypass;
350  }
351  /* Occurs each time needs to get rotation apply.
352  *
353  * @return Determines whether to rotate.
354  * - true: need to rotate.
355  * - false: no rotate.
356  */
357  virtual bool getRotationApplied() { return false; }
358 
359  // NOTE: The following two interfaces should never be overriden!
360  virtual bool isExtensionFilter() { return true; }
361  virtual bool adaptVideoFrame(
362  const media::base::VideoFrame& capturedFrame,
363  media::base::VideoFrame& adaptedFrame) {
364  return -ERR_NOT_SUPPORTED;
365  }
366 };
367 
369  public:
370  enum ProcessResult {
371  kSuccess, // Video frame data is successfully processed
372  kBypass, // Video frame data should bypass the current filter and flow to its successsors
373  kDrop, // Video Frame data should be discarded
374  };
375 
376  class Control : public RefCountInterface {
377  public:
383  virtual int postEvent(const char* key, const char* value) = 0;
390  virtual void printLog(commons::LOG_LEVEL level, const char* format, ...) = 0;
396  virtual void disableMe(int error, const char* msg) = 0;
402  virtual void ReportCounter(int32_t counter_id, int32_t value) = 0;
407  virtual int GetStats(int32_t counter_id) = 0;
408  };
409 
410  virtual int start(agora::agora_refptr<Control> control) = 0;
411 
412  virtual int stop() = 0;
413 
414  virtual int setProperty(const char* key, const void* buf, size_t buf_size) { return -1; }
421  virtual ProcessResult convertAudioFrameToFaceInfo(const agora::media::base::AudioPcmFrame& inAudioFrame, char* outFaceInfo) {
422  return kBypass;
423  }
424 };
425 
430  public:
441  virtual int setProperty(const char* key, const void* buf, int buf_size) { return -1; }
452  virtual int getProperty(const char* key, void* buf, int buf_size) { return -1; }
457  virtual int onFrame(const media::base::VideoFrame& videoFrame) = 0;
462  virtual bool isExternalSink() { return true; }
470  virtual bool onDataStreamWillStart() { return true; }
475  virtual void onDataStreamWillStop() { }
482  virtual bool applyMirror() { return false; }
489  virtual bool applyRotation() { return false; }
490 };
491 
493 public:
494  virtual ~IMediaExtensionObserver() {}
495  virtual void onEvent(const char* provider, const char* extension, const char* key, const char* json_value) {}
496  virtual void onExtensionStopped(const char* provider, const char* extension) {}
497  virtual void onExtensionStarted(const char* provider, const char* extension) {}
498  virtual void onExtensionError(const char* provider, const char* extension, int error, const char* message) {}
499 };
500 
507  public:
521  virtual int sendAudioPcmData(
522  const void* audio_data, uint32_t capture_timestamp, int64_t presentation_ms,
523  const size_t samples_per_channel, // for 10ms Data, number_of_samples * 100 = sample_rate
524  const agora::rtc::BYTES_PER_SAMPLE bytes_per_sample, // 2
525  const size_t number_of_channels,
526  const uint32_t sample_rate, aosl_ref_t ares = AOSL_REF_INVALID) = 0; // sample_rate > 8000)
527 
528  protected:
529  ~IAudioPcmDataSender() {}
530 };
531 
540  public:
553  virtual bool sendEncodedAudioFrame(const uint8_t* payload_data, size_t payload_size,
554  const EncodedAudioFrameInfo& audioFrameInfo, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
555 
556  protected:
558 };
559 
561  public:
571  const uint8_t *packet, size_t length, const media::base::AudioEncodedFrameInfo& info) = 0;
572 
573  virtual ~IAudioEncodedFrameReceiver() {}
574 };
575 
581  public:
590  virtual bool onMediaPacketReceived(
591  const uint8_t *packet, size_t length, const agora::media::base::PacketOptions& options) = 0;
592 
593  virtual ~IMediaPacketReceiver() {}
594 };
595 
603  public:
611  virtual bool onMediaControlPacketReceived(uid_t uid, const uint8_t *packet, size_t length) = 0;
612 
613  virtual ~IMediaControlPacketReceiver() {}
614 };
615 
624  public:
636  virtual int sendMediaPacket(const uint8_t *packet, size_t length,
637  const media::base::PacketOptions &options, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
638  protected:
639  ~IMediaPacketSender() {}
640 };
641 
650  public:
663  virtual int sendPeerMediaControlPacket(media::base::user_id_t userId,
664  const uint8_t *packet,
665  size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
666 
677  virtual int sendBroadcastMediaControlPacket(const uint8_t *packet, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
678 
679  virtual ~IMediaControlPacketSender() {}
680 };
681 
687  public:
695  virtual bool onAudioFrame(const media::base::AudioPcmFrame& audioFrame) = 0;
696 
697  protected:
698  ~IAudioSinkBase() {}
699 };
700 
709  public:
719  virtual int sendVideoFrame(const media::base::ExternalVideoFrame& videoFrame, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
720 
721  protected:
722  ~IVideoFrameSender() {}
723 };
724 
733  public:
745  virtual bool sendEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
746  const EncodedVideoFrameInfo& videoEncodedFrameInfo, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
747 
748  protected:
750 };
751 
756  public:
760  struct BeautyOptions {
777  };
778 
784 
789 
795 
801 
802  BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness,
803  float redness)
804  : lighteningContrastLevel(contrastLevel),
805  lighteningLevel(lightening),
806  smoothnessLevel(smoothness),
807  rednessLevel(redness) {}
808 
809  BeautyOptions()
811  lighteningLevel(0),
812  smoothnessLevel(0),
813  rednessLevel(0) {}
814  };
825  virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options) = 0;
826 };
827 
832  public:
840  virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
849  virtual int setRenderMode(void* view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
859  virtual int setMirror(bool mirror, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
870  virtual int setMirror(void* view, bool mirror, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
878  virtual int setView(void* view, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
887  virtual int addView(void* view, const Rectangle& cropArea, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
894  virtual int unsetView(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
901  virtual int removeView(void* view) = 0;
902 };
903 
904 static const int kDeviceIdSize = 128;
905 
906 class IVideoTrack;
911  public:
912  virtual int getTranscodingDelayMs() = 0;
913  virtual int addVideoTrack(agora_refptr<IVideoTrack> track, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
914  virtual int removeVideoTrack(agora_refptr<IVideoTrack> track, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
915 };
916 
917 }
918 }
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:692
agora::rtc::IMediaPacketSender::sendMediaPacket
virtual int sendMediaPacket(const uint8_t *packet, size_t length, const media::base::PacketOptions &options, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoSinkBase::onDataStreamWillStart
virtual bool onDataStreamWillStart()
Definition: NGIAgoraMediaNode.h:470
agora::rtc::IMediaControlPacketReceiver
Definition: NGIAgoraMediaNode.h:602
agora::rtc::ILipSyncFilter::Control::printLog
virtual void printLog(commons::LOG_LEVEL level, const char *format,...)=0
print log to the SDK.
agora::rtc::IVideoRenderer::unsetView
virtual int unsetView(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoFilter::onDataStreamWillStop
virtual void onDataStreamWillStop()
Definition: NGIAgoraMediaNode.h:222
agora::rtc::IAudioEncodedFrameReceiver::onEncodedAudioFrameReceived
virtual bool onEncodedAudioFrameReceived(const uint8_t *packet, size_t length, const media::base::AudioEncodedFrameInfo &info)=0
agora::rtc::IVideoSinkBase::applyRotation
virtual bool applyRotation()
Definition: NGIAgoraMediaNode.h:489
agora::rtc::IVideoBeautyFilter
Definition: NGIAgoraMediaNode.h:755
agora::rtc::IAudioFilterBase
Definition: NGIAgoraMediaNode.h:27
agora::rtc::IVideoFilterBase::adaptVideoFrame
virtual bool adaptVideoFrame(const media::base::VideoFrame &capturedFrame, media::base::VideoFrame &adaptedFrame)=0
agora::rtc::IVideoTrack
Definition: NGIAgoraVideoTrack.h:97
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IVideoFrameTransceiver
Definition: NGIAgoraMediaNode.h:910
agora::rtc::IAudioFilterBase::adaptAudioFrame
virtual bool adaptAudioFrame(const media::base::AudioPcmFrame &inAudioFrame, media::base::AudioPcmFrame &adaptedFrame)=0
agora::rtc::IExtensionVideoFilter::isExtensionFilter
virtual bool isExtensionFilter()
Definition: NGIAgoraMediaNode.h:360
agora::rtc::IVideoRenderer::setRenderMode
virtual int setRenderMode(void *view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoFilter::setProperty
virtual int setProperty(const char *key, const void *buf, size_t buf_size)
Definition: NGIAgoraMediaNode.h:198
agora::rtc::IVideoFilter::isExtensionFilter
virtual bool isExtensionFilter()
Definition: NGIAgoraMediaNode.h:238
agora::rtc::Rectangle
Definition: AgoraBase.h:2145
agora::rtc::IVideoSinkBase
Definition: NGIAgoraMediaNode.h:429
agora::rtc::IVideoSinkBase::applyMirror
virtual bool applyMirror()
Definition: NGIAgoraMediaNode.h:482
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1611
agora::rtc::IVideoFilter::onDataStreamWillStart
virtual bool onDataStreamWillStart()
Definition: NGIAgoraMediaNode.h:217
agora::rtc::ILipSyncFilter::Control::disableMe
virtual void disableMe(int error, const char *msg)=0
Ask SDK to disable the current filter if a fatal error is detected.
agora::rtc::EncodedAudioFrameInfo
Definition: AgoraBase.h:1450
agora::rtc::IMediaControlPacketSender::sendBroadcastMediaControlPacket
virtual int sendBroadcastMediaControlPacket(const uint8_t *packet, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IAudioPcmDataSender
Definition: NGIAgoraMediaNode.h:506
agora::rtc::ILipSyncFilter::convertAudioFrameToFaceInfo
virtual ProcessResult convertAudioFrameToFaceInfo(const agora::media::base::AudioPcmFrame &inAudioFrame, char *outFaceInfo)
Definition: NGIAgoraMediaNode.h:421
agora::rtc::IVideoRenderer::removeView
virtual int removeView(void *view)=0
agora::rtc::IMediaControlPacketReceiver::onMediaControlPacketReceived
virtual bool onMediaControlPacketReceived(uid_t uid, const uint8_t *packet, size_t length)=0
agora::rtc::IAudioPcmDataSender::sendAudioPcmData
virtual int sendAudioPcmData(const void *audio_data, uint32_t capture_timestamp, int64_t presentation_ms, const size_t samples_per_channel, const agora::rtc::BYTES_PER_SAMPLE bytes_per_sample, const size_t number_of_channels, const uint32_t sample_rate, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILipSyncFilter
Definition: NGIAgoraMediaNode.h:368
agora::rtc::IVideoEncodedImageSender
Definition: NGIAgoraMediaNode.h:732
agora::rtc::IAudioEncodedFrameSender::sendEncodedAudioFrame
virtual bool sendEncodedAudioFrame(const uint8_t *payload_data, size_t payload_size, const EncodedAudioFrameInfo &audioFrameInfo, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IExtensionVideoFilter::adaptVideoFrame
virtual bool adaptVideoFrame(const media::base::VideoFrame &capturedFrame, media::base::VideoFrame &adaptedFrame)
Definition: NGIAgoraMediaNode.h:361
agora::rtc::IAudioFilter::setProperty
virtual int setProperty(const char *key, const void *buf, int buf_size)=0
agora::rtc::IVideoRenderer::setRenderMode
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IAudioFilter::isEnabled
virtual bool isEnabled() const =0
agora::rtc::IMediaPacketSender
Definition: NGIAgoraMediaNode.h:623
agora::rtc::IAudioFilter
Definition: NGIAgoraMediaNode.h:72
agora::rtc::IExtensionVideoFilter::stop
virtual int stop()=0
SDK will invoke this API when the data stream is about to stop. Filter can perform cleanup jobs in th...
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:521
agora::rtc::IAudioFilterBase::getPreferredSampleRate
virtual int getPreferredSampleRate()=0
agora::rtc::IVideoSinkBase::setProperty
virtual int setProperty(const char *key, const void *buf, int buf_size)
Definition: NGIAgoraMediaNode.h:441
agora::rtc::ILipSyncFilter::Control::GetStats
virtual int GetStats(int32_t counter_id)=0
get stats to the SDK.
agora::rtc::IVideoSinkBase::onDataStreamWillStop
virtual void onDataStreamWillStop()
Definition: NGIAgoraMediaNode.h:475
agora::rtc::IExtensionVideoFilter::Control::disableMe
virtual void disableMe(int error, const char *msg)=0
Ask SDK to disable the current filter if a fatal error is detected.
agora::rtc::IAudioEncodedFrameReceiver
Definition: NGIAgoraMediaNode.h:560
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_HIGH
@ LIGHTENING_CONTRAST_HIGH
Definition: NGIAgoraMediaNode.h:776
agora::rtc::IExtensionVideoFilter::getProcessMode
virtual void getProcessMode(ProcessMode &mode, bool &independent_thread)=0
SDK will invoke this API first to get the filter's requested process mode ProcessMode.
agora::rtc::IAudioEncodedFrameSender
Definition: NGIAgoraMediaNode.h:539
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:270
agora::rtc::IAudioFilterBase::getPreferredChannelNumbers
virtual int getPreferredChannelNumbers()=0
agora::rtc::IVideoSinkBase::onFrame
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
agora::rtc::IVideoFilterBase
Definition: NGIAgoraMediaNode.h:147
agora::rtc::IVideoRenderer::setMirror
virtual int setMirror(bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoFrameSender::sendVideoFrame
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoRenderer::addView
virtual int addView(void *view, const Rectangle &cropArea, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IExtensionVideoFilter::adaptVideoFrame
virtual ProcessResult adaptVideoFrame(agora::agora_refptr< IVideoFrame > in, agora::agora_refptr< IVideoFrame > &out)
SDK will invoke this API to send video frame to the filter if process mode is "Sync".
Definition: NGIAgoraMediaNode.h:348
agora::rtc::IMediaPacketReceiver
Definition: NGIAgoraMediaNode.h:580
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_LEVEL
LIGHTENING_CONTRAST_LEVEL
Definition: NGIAgoraMediaNode.h:764
agora::rtc::IVideoRenderer
Definition: NGIAgoraMediaNode.h:831
agora::rtc::IVideoEncodedImageSender::sendEncodedVideoImage
virtual bool sendEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const EncodedVideoFrameInfo &videoEncodedFrameInfo, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IMediaControlPacketSender::sendPeerMediaControlPacket
virtual int sendPeerMediaControlPacket(media::base::user_id_t userId, const uint8_t *packet, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoRenderer::setMirror
virtual int setMirror(void *view, bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IExtensionVideoFilter::getVideoFormatWanted
virtual void getVideoFormatWanted(VideoFrameData::Type &type, RawPixelBuffer::Format &format)=0
SDK will invoke this API every time before sending data to the filter. Filter can desigante the type ...
agora::rtc::IExtensionVideoFilter::Control
Definition: NGIAgoraMediaNode.h:267
agora::rtc::IExtensionVideoFilter::pendVideoFrame
virtual ProcessResult pendVideoFrame(agora::agora_refptr< IVideoFrame > frame)
SDK will invoke this API to send video frame to the filter if process mode is "Async"....
Definition: NGIAgoraMediaNode.h:340
agora::rtc::IVideoBeautyFilter::BeautyOptions::rednessLevel
float rednessLevel
Definition: NGIAgoraMediaNode.h:800
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_LOW
@ LIGHTENING_CONTRAST_LOW
Definition: NGIAgoraMediaNode.h:768
agora::rtc::IAudioSinkBase
Definition: NGIAgoraMediaNode.h:686
agora::rtc::IAudioSinkBase::onAudioFrame
virtual bool onAudioFrame(const media::base::AudioPcmFrame &audioFrame)=0
agora::rtc::IVideoFrameSender
Definition: NGIAgoraMediaNode.h:708
agora::rtc::IExtensionVideoFilter
Definition: NGIAgoraMediaNode.h:247
agora::rtc::IAudioFilter::getPreferredChannelNumbers
virtual int getPreferredChannelNumbers()
Definition: NGIAgoraMediaNode.h:137
agora::rtc::IExtensionVideoFilter::Control::getMemoryPool
virtual agora::agora_refptr< IVideoFrameMemoryPool > getMemoryPool()=0
Filter can invoke this function to get the IVideoFrameMemoryPool object if a new IVideoFrame data obj...
agora::rtc::ILipSyncFilter::Control::ReportCounter
virtual void ReportCounter(int32_t counter_id, int32_t value)=0
report counter to the SDK.
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IVideoFilter::getProperty
virtual int getProperty(const char *key, void *buf, size_t buf_size)
Definition: NGIAgoraMediaNode.h:209
agora::rtc::ILipSyncFilter::Control::postEvent
virtual int postEvent(const char *key, const char *value)=0
Post an event and notify the end users.
agora::rtc::IMediaPacketReceiver::onMediaPacketReceived
virtual bool onMediaPacketReceived(const uint8_t *packet, size_t length, const agora::media::base::PacketOptions &options)=0
agora::rtc::IVideoFilter::isEnabled
virtual bool isEnabled()
Definition: NGIAgoraMediaNode.h:187
agora::rtc::IVideoFilter::setEnabled
virtual void setEnabled(bool enable)
Definition: NGIAgoraMediaNode.h:180
agora::rtc::IVideoBeautyFilter::BeautyOptions::smoothnessLevel
float smoothnessLevel
Definition: NGIAgoraMediaNode.h:794
agora::rtc::IExtensionVideoFilter::Control::deliverVideoFrame
virtual ProcessResult deliverVideoFrame(agora::agora_refptr< IVideoFrame > frame)=0
Filter can invoke this function to deliver the processed frame to SDK if the Process Mode is designat...
agora::rtc::IAudioFilter::setEnabled
virtual void setEnabled(bool enable)=0
agora::media::base::AudioEncodedFrameInfo
Definition: AgoraMediaBase.h:286
agora::rtc::IVideoBeautyFilter::setBeautyEffectOptions
virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options)=0
agora::rtc::IVideoBeautyFilter::BeautyOptions::lighteningLevel
float lighteningLevel
Definition: NGIAgoraMediaNode.h:788
agora::rtc::IVideoFilter::isExternal
virtual bool isExternal()
Definition: NGIAgoraMediaNode.h:230
agora::rtc::IAudioFilter::getPreferredSampleRate
virtual int getPreferredSampleRate()
Definition: NGIAgoraMediaNode.h:127
agora::rtc::IMediaControlPacketSender
Definition: NGIAgoraMediaNode.h:649
agora::rtc::IVideoBeautyFilter::BeautyOptions::lighteningContrastLevel
LIGHTENING_CONTRAST_LEVEL lighteningContrastLevel
Definition: NGIAgoraMediaNode.h:783
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_NORMAL
@ LIGHTENING_CONTRAST_NORMAL
Definition: NGIAgoraMediaNode.h:772
agora::rtc::ILipSyncFilter::Control
Definition: NGIAgoraMediaNode.h:376
agora::rtc::IExtensionVideoFilter::Control::printLog
virtual void printLog(commons::LOG_LEVEL level, const char *format,...)=0
print log to the SDK.
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:303
agora::rtc::IVideoRenderer::setView
virtual int setView(void *view, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IAudioFilter::getProperty
virtual int getProperty(const char *key, void *buf, int buf_size) const =0
agora::rtc::IMediaExtensionObserver
Definition: NGIAgoraMediaNode.h:492
agora::rtc::IVideoFilter
Definition: NGIAgoraMediaNode.h:171
agora::rtc::IExtensionVideoFilter::start
virtual int start(agora::agora_refptr< Control > control)=0
SDK will invoke this API before feeding video frame data to the filter. Filter can perform its initia...
agora::rtc::IVideoSinkBase::isExternalSink
virtual bool isExternalSink()
Definition: NGIAgoraMediaNode.h:462
agora::rtc::IVideoBeautyFilter::BeautyOptions
Definition: NGIAgoraMediaNode.h:760
agora::rtc::IAudioFilter::getName
virtual const char * getName() const =0
agora::rtc::IVideoSinkBase::getProperty
virtual int getProperty(const char *key, void *buf, int buf_size)
Definition: NGIAgoraMediaNode.h:452
agora::rtc::IExtensionVideoFilter::Control::postEvent
virtual int postEvent(const char *key, const char *value)=0
Post an event and notify the end users.