Agora Java API Reference for Android
NGIAgoraMediaNode.h
1 #pragma once
2 #include "AgoraRefPtr.h"
3 #include "AgoraBase.h"
4 
5 namespace agora {
6 namespace rtc {
12  public:
13  // Return false if filter decide to drop the frame.
14  // Implementation should not change samples_per_channel_/sample_rate_hz_/num_channels_
15  // Implementation should just adapt data of audio frame.
24  virtual bool adaptAudioFrame(const media::base::AudioPcmFrame& inAudioFrame,
25  media::base::AudioPcmFrame& adaptedFrame) = 0;
26  protected:
27  ~IAudioFilterBase() {}
28 };
29 
37  public:
44  virtual void setEnabled(bool enable) = 0;
51  virtual bool isEnabled() const = 0;
62  virtual int setProperty(const char* key, const void* buf, int buf_size) = 0;
73  virtual int getProperty(const char* key, void* buf, int buf_size) const = 0;
81  virtual const char * getName() const = 0;
82 
83  protected:
84  ~IAudioFilter() {}
85 };
86 
92  public:
103  virtual bool adaptVideoFrame(const media::base::VideoFrame& capturedFrame,
104  media::base::VideoFrame& adaptedFrame) = 0;
105 };
106 
107 // TODO(Bob): private inherit?
116  public:
124  virtual void setEnabled(bool enable) {}
131  virtual bool isEnabled() { return true; }
142  virtual int setProperty(const char* key, const void* buf, size_t buf_size) { return -1; }
153  virtual int getProperty(const char* key, void* buf, size_t buf_size) { return -1; }
161  virtual bool onDataStreamWillStart() { return true; }
166  virtual void onDataStreamWillStop() { }
174  virtual bool isExternal() { return true; }
175 };
176 
181  public:
192  virtual int setProperty(const char* key, const void* buf, int buf_size) { return -1; }
203  virtual int getProperty(const char* key, void* buf, int buf_size) { return -1; }
208  virtual int onFrame(const media::base::VideoFrame& videoFrame) = 0;
213  virtual bool isExternalSink() { return true; }
221  virtual bool onDataStreamWillStart() { return true; }
226  virtual void onDataStreamWillStop() { }
227 };
228 
230 public:
231  virtual ~IMediaExtensionObserver() {}
232  virtual void onEvent(const char* id, const char* key, const char* json_value) {}
233 };
234 
241  public:
255  virtual int sendAudioPcmData(
256  const void* audio_data, uint32_t capture_timestamp,
257  const size_t samples_per_channel, // for 10ms Data, number_of_samples * 100 = sample_rate
258  const agora::rtc::BYTES_PER_SAMPLE bytes_per_sample, // 2
259  const size_t number_of_channels,
260  const uint32_t sample_rate) = 0; // sample_rate > 8000
261 
262  protected:
263  ~IAudioPcmDataSender() {}
264 };
265 
274  public:
287  virtual bool sendEncodedAudioFrame(const uint8_t* payload_data, size_t payload_size,
288  const EncodedAudioFrameInfo& audioFrameInfo) = 0;
289 
290  protected:
292 };
293 
299  public:
308  virtual bool onMediaPacketReceived(
309  const uint8_t *packet, size_t length, const agora::media::base::PacketOptions& options) = 0;
310 
311  virtual ~IMediaPacketReceiver() {}
312 };
313 
321  public:
329  virtual bool onMediaControlPacketReceived(uid_t uid, const uint8_t *packet, size_t length) = 0;
330 
331  virtual ~IMediaControlPacketReceiver() {}
332 };
333 
342  public:
354  virtual int sendMediaPacket(const uint8_t *packet, size_t length,
355  const media::base::PacketOptions &options) = 0;
356  protected:
357  ~IMediaPacketSender() {}
358 };
359 
368  public:
381  virtual int sendPeerMediaControlPacket(media::base::user_id_t userId,
382  const uint8_t *packet,
383  size_t length) = 0;
384 
395  virtual int sendBroadcastMediaControlPacket(const uint8_t *packet, size_t length) = 0;
396 
397  virtual ~IMediaControlPacketSender() {}
398 };
399 
405  public:
413  virtual bool onAudioFrame(const media::base::AudioPcmFrame& audioFrame) = 0;
414 
415  protected:
416  ~IAudioSinkBase() {}
417 };
418 
427  public:
437  virtual int sendVideoFrame(const media::base::ExternalVideoFrame& videoFrame) = 0;
438 
439  protected:
440  ~IVideoFrameSender() {}
441 };
442 
451  public:
463  virtual bool sendEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
464  const EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
465 
466  protected:
468 };
469 
474  public:
478  struct BeautyOptions {
495  };
496 
502 
507 
513 
519 
520  BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness,
521  float redness)
522  : lighteningContrastLevel(contrastLevel),
523  lighteningLevel(lightening),
524  smoothnessLevel(smoothness),
525  rednessLevel(redness) {}
526 
527  BeautyOptions()
529  lighteningLevel(0),
530  smoothnessLevel(0),
531  rednessLevel(0) {}
532  };
543  virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options) = 0;
544 };
545 
550  public:
558  virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode) = 0;
568  virtual int setMirror(bool mirror) = 0;
576  virtual int setView(void* view) = 0;
583  virtual int unsetView() = 0;
584 };
585 
586 static const int kDeviceIdSize = 128;
587 
588 class IVideoTrack;
593  public:
594  virtual int getTranscodingDelayMs() = 0;
595  virtual int addVideoTrack(agora_refptr<IVideoTrack> track) = 0;
596  virtual int removeVideoTrack(agora_refptr<IVideoTrack> track) = 0;
597 };
598 
599 }
600 }
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:419
agora::rtc::IMediaControlPacketSender::sendPeerMediaControlPacket
virtual int sendPeerMediaControlPacket(media::base::user_id_t userId, const uint8_t *packet, size_t length)=0
agora::rtc::IVideoSinkBase::onDataStreamWillStart
virtual bool onDataStreamWillStart()
Definition: NGIAgoraMediaNode.h:221
agora::rtc::IMediaControlPacketReceiver
Definition: NGIAgoraMediaNode.h:320
agora::rtc::IVideoFilter::onDataStreamWillStop
virtual void onDataStreamWillStop()
Definition: NGIAgoraMediaNode.h:166
agora::rtc::IMediaControlPacketSender::sendBroadcastMediaControlPacket
virtual int sendBroadcastMediaControlPacket(const uint8_t *packet, size_t length)=0
agora::rtc::IVideoFrameSender::sendVideoFrame
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame)=0
agora::rtc::IVideoBeautyFilter
Definition: NGIAgoraMediaNode.h:473
agora::rtc::IAudioFilterBase
Definition: NGIAgoraMediaNode.h:11
agora::rtc::IVideoFilterBase::adaptVideoFrame
virtual bool adaptVideoFrame(const media::base::VideoFrame &capturedFrame, media::base::VideoFrame &adaptedFrame)=0
agora::rtc::IVideoTrack
Definition: NGIAgoraVideoTrack.h:36
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IVideoFrameTransceiver
Definition: NGIAgoraMediaNode.h:592
agora::rtc::IAudioFilterBase::adaptAudioFrame
virtual bool adaptAudioFrame(const media::base::AudioPcmFrame &inAudioFrame, media::base::AudioPcmFrame &adaptedFrame)=0
agora::rtc::IVideoRenderer::setView
virtual int setView(void *view)=0
agora::rtc::IVideoFilter::setProperty
virtual int setProperty(const char *key, const void *buf, size_t buf_size)
Definition: NGIAgoraMediaNode.h:142
agora::rtc::IVideoSinkBase
Definition: NGIAgoraMediaNode.h:180
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1691
agora::rtc::IVideoFilter::onDataStreamWillStart
virtual bool onDataStreamWillStart()
Definition: NGIAgoraMediaNode.h:161
agora::rtc::EncodedAudioFrameInfo
Definition: AgoraBase.h:1593
agora::rtc::IVideoRenderer::unsetView
virtual int unsetView()=0
agora::rtc::IVideoEncodedImageSender::sendEncodedVideoImage
virtual bool sendEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
agora::rtc::IAudioPcmDataSender
Definition: NGIAgoraMediaNode.h:240
agora::rtc::IMediaControlPacketReceiver::onMediaControlPacketReceived
virtual bool onMediaControlPacketReceived(uid_t uid, const uint8_t *packet, size_t length)=0
agora::rtc::IVideoEncodedImageSender
Definition: NGIAgoraMediaNode.h:450
agora::rtc::IAudioFilter::setProperty
virtual int setProperty(const char *key, const void *buf, int buf_size)=0
agora::rtc::IAudioFilter::isEnabled
virtual bool isEnabled() const =0
agora::rtc::IMediaPacketSender
Definition: NGIAgoraMediaNode.h:341
agora::rtc::IAudioFilter
Definition: NGIAgoraMediaNode.h:36
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:288
agora::rtc::IVideoSinkBase::setProperty
virtual int setProperty(const char *key, const void *buf, int buf_size)
Definition: NGIAgoraMediaNode.h:192
agora::rtc::IVideoSinkBase::onDataStreamWillStop
virtual void onDataStreamWillStop()
Definition: NGIAgoraMediaNode.h:226
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_HIGH
@ LIGHTENING_CONTRAST_HIGH
Definition: NGIAgoraMediaNode.h:494
agora::rtc::IAudioEncodedFrameSender
Definition: NGIAgoraMediaNode.h:273
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:126
agora::rtc::IAudioEncodedFrameSender::sendEncodedAudioFrame
virtual bool sendEncodedAudioFrame(const uint8_t *payload_data, size_t payload_size, const EncodedAudioFrameInfo &audioFrameInfo)=0
agora::rtc::IVideoSinkBase::onFrame
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
agora::rtc::IVideoFilterBase
Definition: NGIAgoraMediaNode.h:91
agora::rtc::IMediaPacketReceiver
Definition: NGIAgoraMediaNode.h:298
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_LEVEL
LIGHTENING_CONTRAST_LEVEL
Definition: NGIAgoraMediaNode.h:482
agora::rtc::IAudioPcmDataSender::sendAudioPcmData
virtual int sendAudioPcmData(const void *audio_data, uint32_t capture_timestamp, 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)=0
agora::rtc::IVideoRenderer
Definition: NGIAgoraMediaNode.h:549
agora::rtc::IVideoRenderer::setRenderMode
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode)=0
agora::rtc::IVideoBeautyFilter::BeautyOptions::rednessLevel
float rednessLevel
Definition: NGIAgoraMediaNode.h:518
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_LOW
@ LIGHTENING_CONTRAST_LOW
Definition: NGIAgoraMediaNode.h:486
agora::rtc::IAudioSinkBase
Definition: NGIAgoraMediaNode.h:404
agora::rtc::IAudioSinkBase::onAudioFrame
virtual bool onAudioFrame(const media::base::AudioPcmFrame &audioFrame)=0
agora::rtc::IVideoFrameSender
Definition: NGIAgoraMediaNode.h:426
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:153
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:131
agora::rtc::IVideoFilter::setEnabled
virtual void setEnabled(bool enable)
Definition: NGIAgoraMediaNode.h:124
agora::rtc::IMediaPacketSender::sendMediaPacket
virtual int sendMediaPacket(const uint8_t *packet, size_t length, const media::base::PacketOptions &options)=0
agora::rtc::IVideoBeautyFilter::BeautyOptions::smoothnessLevel
float smoothnessLevel
Definition: NGIAgoraMediaNode.h:512
agora::rtc::IAudioFilter::setEnabled
virtual void setEnabled(bool enable)=0
agora::rtc::IVideoBeautyFilter::setBeautyEffectOptions
virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options)=0
agora::rtc::IVideoBeautyFilter::BeautyOptions::lighteningLevel
float lighteningLevel
Definition: NGIAgoraMediaNode.h:506
agora::rtc::IVideoFilter::isExternal
virtual bool isExternal()
Definition: NGIAgoraMediaNode.h:174
agora::rtc::IMediaControlPacketSender
Definition: NGIAgoraMediaNode.h:367
agora::rtc::IVideoBeautyFilter::BeautyOptions::lighteningContrastLevel
LIGHTENING_CONTRAST_LEVEL lighteningContrastLevel
Definition: NGIAgoraMediaNode.h:501
agora::rtc::IVideoBeautyFilter::BeautyOptions::LIGHTENING_CONTRAST_NORMAL
@ LIGHTENING_CONTRAST_NORMAL
Definition: NGIAgoraMediaNode.h:490
agora::media::base::AudioPcmFrame
Definition: AgoraMediaBase.h:141
agora::rtc::IAudioFilter::getProperty
virtual int getProperty(const char *key, void *buf, int buf_size) const =0
agora::rtc::IVideoRenderer::setMirror
virtual int setMirror(bool mirror)=0
agora::rtc::IMediaExtensionObserver
Definition: NGIAgoraMediaNode.h:229
agora::rtc::IVideoFilter
Definition: NGIAgoraMediaNode.h:115
agora::rtc::IVideoSinkBase::isExternalSink
virtual bool isExternalSink()
Definition: NGIAgoraMediaNode.h:213
agora::rtc::IVideoBeautyFilter::BeautyOptions
Definition: NGIAgoraMediaNode.h:478
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:203