Agora Java API Reference for Android
NGIAgoraRtmpConnection.h
1 //
2 // Agora RTMP connection
3 //
4 // Created by Haonong Yu in 2020-02.
5 // Copyright (c) 2020 Agora.io. All rights reserved.
6 //
7 
8 #pragma once // NOLINT(build/header_guard)
9 
10 #include "AgoraBase.h"
11 #include "AgoraRefPtr.h"
12 
13 namespace agora {
14 namespace rtc {
15 
16 class IRtmpLocalUser;
17 
26 
31 
36 
41  int bitrate;
42 
44  numberOfChannels(1), bitrate(48000) {}
45 };
46 
59  int width;
60 
69  int height;
70 
75  int framerate;
76 
81  int bitrate;
82 
88 
94 
99  ORIENTATION_MODE orientationMode;
100 
102  bitrate(800), maxBitrate(960), minBitrate(600),
103  orientationMode(ORIENTATION_MODE_ADAPTIVE) {}
104 };
105 
106 
110 enum RTMP_CONNECTION_ERROR {
114  RTMP_CONNECTION_ERR_OK = 0,
115 
119  RTMP_CONNECTION_ERR_FAILED = 1,
120 
124  RTMP_CONNECTION_ERR_INVALID_URL = 2,
125 };
126 
130 enum RTMP_CONNECTION_STATE {
142  STATE_DISCONNECTED = 1,
143 
155  STATE_CONNECTING = 2,
156 
167  STATE_CONNECTED = 3,
168 
177  STATE_RECONNECTING = 4,
178 
186  STATE_FAILED = 5
187 };
188 
195  bool enableWriteFlvFile;
196  RtmpConnectionConfiguration() : enableWriteFlvFile(false) {}
197 };
198 
206  RTMP_CONNECTION_STATE state;
207 
208  RtmpConnectionInfo() : state(STATE_DISCONNECTED) {}
209 };
210 
211 
216  public:
222  virtual void onConnected(const RtmpConnectionInfo& connectionInfo) = 0;
223 
229  virtual void onDisconnected(const RtmpConnectionInfo& connectionInfo) = 0;
230 
236  virtual void onReconnecting(const RtmpConnectionInfo& connectionInfo) = 0;
237 
244  virtual void onConnectionFailure(const RtmpConnectionInfo& connectionInfo,
245  RTMP_CONNECTION_ERROR errCode) = 0;
246 
254  virtual void onTransferStatistics(uint64_t video_bitrate, uint64_t audio_bitrate, uint64_t video_frame_rate) = 0;
255 
256  virtual ~IRtmpConnectionObserver() {}
257 };
258 
270  public:
271  ~IRtmpConnection() {};
272 
292  virtual int connect(const char* url) = 0;
293 
301  virtual int disconnect() = 0;
302 
311 
320 
329  virtual int registerObserver(IRtmpConnectionObserver* observer, void(*safeDeleter)(IRtmpConnectionObserver*) = NULL) = 0;
330 
340  virtual int unregisterObserver(IRtmpConnectionObserver* observer) = 0;
341 };
342 
343 } // namespace rtc
344 } // namespace agora
agora::rtc::IRtmpConnection::unregisterObserver
virtual int unregisterObserver(IRtmpConnectionObserver *observer)=0
agora::rtc::RtmpStreamingAudioConfiguration::bytesPerSample
int bytesPerSample
Definition: NGIAgoraRtmpConnection.h:30
agora::rtc::IRtmpConnection::getRtmpLocalUser
virtual IRtmpLocalUser * getRtmpLocalUser()=0
agora::rtc::IRtmpConnection::registerObserver
virtual int registerObserver(IRtmpConnectionObserver *observer, void(*safeDeleter)(IRtmpConnectionObserver *)=NULL)=0
agora::rtc::RtmpStreamingVideoConfiguration::height
int height
Definition: NGIAgoraRtmpConnection.h:69
agora::rtc::RtmpStreamingVideoConfiguration::orientationMode
ORIENTATION_MODE orientationMode
Definition: NGIAgoraRtmpConnection.h:99
agora::rtc::IRtmpConnection
Definition: NGIAgoraRtmpConnection.h:269
agora::rtc::IRtmpConnectionObserver::onReconnecting
virtual void onReconnecting(const RtmpConnectionInfo &connectionInfo)=0
agora::rtc::RtmpConnectionConfiguration
Definition: NGIAgoraRtmpConnection.h:192
agora::rtc::RtmpConnectionInfo
Definition: NGIAgoraRtmpConnection.h:202
agora::rtc::RtmpStreamingVideoConfiguration::minBitrate
int minBitrate
Definition: NGIAgoraRtmpConnection.h:93
agora::rtc::RtmpStreamingVideoConfiguration::width
int width
Definition: NGIAgoraRtmpConnection.h:59
agora::rtc::RtmpStreamingVideoConfiguration
Definition: NGIAgoraRtmpConnection.h:50
agora::rtc::RtmpStreamingAudioConfiguration::sampleRateHz
int sampleRateHz
Definition: NGIAgoraRtmpConnection.h:25
agora::rtc::IRtmpConnectionObserver::onDisconnected
virtual void onDisconnected(const RtmpConnectionInfo &connectionInfo)=0
agora::rtc::IRtmpConnectionObserver::onTransferStatistics
virtual void onTransferStatistics(uint64_t video_bitrate, uint64_t audio_bitrate, uint64_t video_frame_rate)=0
agora::rtc::RtmpStreamingAudioConfiguration
Definition: NGIAgoraRtmpConnection.h:21
agora::rtc::IRtmpConnectionObserver::onConnected
virtual void onConnected(const RtmpConnectionInfo &connectionInfo)=0
agora::rtc::RtmpStreamingAudioConfiguration::numberOfChannels
int numberOfChannels
Definition: NGIAgoraRtmpConnection.h:35
agora::rtc::RtmpConnectionInfo::state
RTMP_CONNECTION_STATE state
Definition: NGIAgoraRtmpConnection.h:206
agora::rtc::IRtmpConnection::disconnect
virtual int disconnect()=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IRtmpConnection::connect
virtual int connect(const char *url)=0
agora::rtc::IRtmpConnection::getConnectionInfo
virtual RtmpConnectionInfo getConnectionInfo()=0
agora::rtc::IRtmpLocalUser
Definition: NGIAgoraRtmpLocalUser.h:97
agora::rtc::RtmpStreamingVideoConfiguration::framerate
int framerate
Definition: NGIAgoraRtmpConnection.h:75
agora::rtc::RtmpStreamingAudioConfiguration::bitrate
int bitrate
Definition: NGIAgoraRtmpConnection.h:41
agora::rtc::RtmpStreamingVideoConfiguration::bitrate
int bitrate
Definition: NGIAgoraRtmpConnection.h:81
agora::rtc::RtmpStreamingVideoConfiguration::maxBitrate
int maxBitrate
Definition: NGIAgoraRtmpConnection.h:87
agora::rtc::IRtmpConnectionObserver::onConnectionFailure
virtual void onConnectionFailure(const RtmpConnectionInfo &connectionInfo, RTMP_CONNECTION_ERROR errCode)=0
agora::rtc::IRtmpConnectionObserver
Definition: NGIAgoraRtmpConnection.h:215