64
72
videoBytesCount = 0;
65
73
videoStartRTP = 0xffffffff;
75
videoDataChannel = 0xff;
76
videoRtcpChannel = 0xff;
70
80
class DLLEXP OutboundConnectivity
71
81
: public BaseConnectivity {
84
RTSPProtocol *_pRTSPProtocol;
73
85
BaseOutNetRTPUDPStream *_pOutStream;
76
88
uint8_t *_pRTCPNTP;
77
89
uint8_t *_pRTCPRTP;
78
90
uint8_t *_pRTCPSPC;
79
91
uint8_t *_pRTCPSOC;
80
92
uint64_t _startupTime;
81
map<uint32_t, RTPClient> _clients;
85
96
int32_t _videoDataFd;
86
97
uint16_t _videoDataPort;
87
98
int32_t _videoRTCPFd;
88
99
uint16_t _videoRTCPPort;
100
NATTraversalProtocol *_pVideoNATData;
101
NATTraversalProtocol *_pVideoNATRTCP;
90
104
int32_t _audioDataFd;
91
105
uint16_t _audioDataPort;
92
106
int32_t _audioRTCPFd;
93
107
uint16_t _audioRTCPPort;
108
NATTraversalProtocol *_pAudioNATData;
109
NATTraversalProtocol *_pAudioNATRTCP;
111
uint32_t _dummyValue;
95
OutboundConnectivity();
113
OutboundConnectivity(bool forceTcp, RTSPProtocol *pRTSPProtocol);
96
114
virtual ~OutboundConnectivity();
97
115
bool Initialize();
98
116
void SetOutStream(BaseOutNetRTPUDPStream *pOutStream);
99
117
string GetVideoPorts();
100
118
string GetAudioPorts();
119
string GetVideoChannels();
120
string GetAudioChannels();
101
121
uint32_t GetAudioSSRC();
102
122
uint32_t GetVideoSSRC();
103
123
uint16_t GetLastVideoSequence();
104
124
uint16_t GetLastAudioSequence();
105
125
void HasAudio(bool value);
106
126
void HasVideo(bool value);
107
bool RegisterUDPVideoClient1(uint32_t rtspProtocolId, sockaddr_in &data,
109
bool RegisterUDPAudioClient1(uint32_t rtspProtocolId, sockaddr_in &data,
111
void UnRegisterClient(uint32_t protocolId);
127
bool RegisterUDPVideoClient(uint32_t rtspProtocolId, sockaddr_in &data,
129
bool RegisterUDPAudioClient(uint32_t rtspProtocolId, sockaddr_in &data,
131
bool RegisterTCPVideoClient(uint32_t rtspProtocolId, uint8_t data, uint8_t rtcp);
132
bool RegisterTCPAudioClient(uint32_t rtspProtocolId, uint8_t data, uint8_t rtcp);
113
133
void SignalDetachedFromInStream();
114
bool FeedVideoData(uint8_t *pBuffer, uint32_t length, double absoluteTimestamp);
115
bool FeedAudioData(uint8_t *pBuffer, uint32_t length, double absoluteTimestamp);
116
bool FeedVideoData(msghdr &message, double absoluteTimestamp);
117
bool FeedAudioData(msghdr &message, double absoluteTimestamp);
134
bool FeedVideoData(MSGHDR &message, double absoluteTimestamp);
135
bool FeedAudioData(MSGHDR &message, double absoluteTimestamp);
119
137
bool InitializePorts(int32_t &dataFd, uint16_t &dataPort,
120
int32_t &RTCPFd, uint16_t &RTCPPort);
121
bool FeedDataUDP(msghdr &message, double absoluteTimestamp, bool isAudio);
122
bool FeedDataTCP(msghdr &message, double absoluteTimestamp, bool isAudio);
138
NATTraversalProtocol **ppNATData, int32_t &RTCPFd, uint16_t &RTCPPort,
139
NATTraversalProtocol **ppNATRTCP);
140
bool FeedData(MSGHDR &message, double absoluteTimestamp, bool isAudio);