Agora Server Gateway SDK C++ API Reference
NGIAgoraMediaNode.h
Go to the documentation of this file.
1#pragma once
2#include "AgoraRefPtr.h"
3#include "AgoraBase.h"
4#include "IAgoraLog.h"
5#include "NGIAgoraVideoFrame.h"
6
7#ifndef OPTIONAL_PROCESSRESULT_SPECIFIER
8#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
9#define OPTIONAL_PROCESSRESULT_SPECIFIER ProcessResult::
10#else
11#define OPTIONAL_PROCESSRESULT_SPECIFIER
12#endif
13#endif
14
15namespace agora {
16namespace rtc {
17
21class IVideoSinkBase : public RefCountInterface {
22 public:
33 virtual int setProperty(const char* key, const void* buf, int buf_size) { return -1; }
44 virtual int getProperty(const char* key, void* buf, int buf_size) { return -1; }
49 virtual int onFrame(const media::base::VideoFrame& videoFrame) = 0;
51
55 virtual bool isExternalSink() { return true; }
63 virtual bool onDataStreamWillStart() { return true; }
68 virtual void onDataStreamWillStop() { }
70
76 virtual bool applyMirror() { return false; }
83 virtual bool applyRotation() { return false; }
84};
85
91class IAudioPcmDataSender : public RefCountInterface {
92 public:
107 virtual int sendAudioPcmData(
108 const void* audio_data, uint32_t capture_timestamp,
109 const size_t samples_per_channel, // for 10ms Data, number_of_samples * 100 = sample_rate
110 const agora::rtc::BYTES_PER_SAMPLE bytes_per_sample, // 2
111 const size_t number_of_channels,
112 const uint32_t sample_rate) = 0; // sample_rate > 8000
113
114 protected:
116};
117
125class IAudioEncodedFrameSender : public RefCountInterface {
126 public:
139 virtual bool sendEncodedAudioFrame(const uint8_t* payload_data, size_t payload_size,
140 const EncodedAudioFrameInfo& audioFrameInfo) = 0;
141
142 protected:
144};
145
150class IAudioSinkBase : public RefCountInterface {
151 public:
159 virtual bool onAudioFrame(const media::base::AudioPcmFrame& audioFrame) = 0;
160
161 protected:
163};
164
172class IVideoFrameSender : public RefCountInterface {
173 public:
183 virtual int sendVideoFrame(const media::base::ExternalVideoFrame& videoFrame) = 0;
184
185 protected:
187};
188
196class IVideoEncodedImageSender : public RefCountInterface {
197 public:
209 virtual bool sendEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
210 const EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
211
212 protected:
214};
215};
216
217}
Definition: NGIAgoraMediaNode.h:125
~IAudioEncodedFrameSender()
Definition: NGIAgoraMediaNode.h:143
virtual bool sendEncodedAudioFrame(const uint8_t *payload_data, size_t payload_size, const EncodedAudioFrameInfo &audioFrameInfo)=0
Definition: NGIAgoraMediaNode.h:91
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
~IAudioPcmDataSender()
Definition: NGIAgoraMediaNode.h:115
Definition: NGIAgoraMediaNode.h:150
virtual bool onAudioFrame(const media::base::AudioPcmFrame &audioFrame)=0
~IAudioSinkBase()
Definition: NGIAgoraMediaNode.h:162
Definition: NGIAgoraMediaNode.h:196
~IVideoEncodedImageSender()
Definition: NGIAgoraMediaNode.h:213
virtual bool sendEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
Definition: NGIAgoraMediaNode.h:172
~IVideoFrameSender()
Definition: NGIAgoraMediaNode.h:186
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame)=0
Definition: NGIAgoraMediaNode.h:21
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
virtual int getProperty(const char *key, void *buf, int buf_size)
Definition: NGIAgoraMediaNode.h:44
virtual bool applyRotation()
Definition: NGIAgoraMediaNode.h:83
virtual bool applyMirror()
Definition: NGIAgoraMediaNode.h:76
virtual int setProperty(const char *key, const void *buf, int buf_size)
Definition: NGIAgoraMediaNode.h:33
BYTES_PER_SAMPLE
Definition: AgoraMediaBase.h:38
Definition: AgoraBase.h:86
Definition: AgoraMediaBase.h:170
Definition: AgoraMediaBase.h:350
Definition: AgoraMediaBase.h:502
Definition: AgoraBase.h:1740
Definition: AgoraBase.h:1880