恢复原来代码

This commit is contained in:
xiongziliang 2019-01-30 17:26:02 +08:00
parent c0d3c0f032
commit 6ecd21cd6c
3 changed files with 3 additions and 28 deletions

View File

@ -70,42 +70,19 @@ static unordered_map<string, weak_ptr<RtspSession> > g_mapGetter;
//对g_mapGetter上锁保护 //对g_mapGetter上锁保护
static recursive_mutex g_mtxGetter; static recursive_mutex g_mtxGetter;
//rtsp会话个数统计
static recursive_mutex g_mtxSessionCounter;
static unordered_map<string,atomic<uint32_t > > g_mapSessionCounter;
static int kSockFlags = SOCKET_DEFAULE_FLAGS | FLAG_MORE; static int kSockFlags = SOCKET_DEFAULE_FLAGS | FLAG_MORE;
uint32_t RtspSession::getSessionCountOnInterface(const string &ifr){
lock_guard<recursive_mutex> lck(g_mtxSessionCounter);
if(ifr.empty()){
int i = 0;
for(auto &pr : g_mapSessionCounter){
i += pr.second;
}
return i;
}
return g_mapSessionCounter[ifr];
}
RtspSession::RtspSession(const Socket::Ptr &pSock) : TcpSession(pSock) { RtspSession::RtspSession(const Socket::Ptr &pSock) : TcpSession(pSock) {
//设置10秒发送缓存 //设置10秒发送缓存
pSock->setSendBufSecond(30); pSock->setSendBufSecond(10);
//设置15秒发送超时时间 //设置15秒发送超时时间
pSock->setSendTimeOutSecond(45); pSock->setSendTimeOutSecond(15);
DebugL << get_peer_ip(); DebugL << get_peer_ip();
lock_guard<recursive_mutex> lck(g_mtxSessionCounter);
++(g_mapSessionCounter[get_local_ip()]);
} }
RtspSession::~RtspSession() { RtspSession::~RtspSession() {
DebugL << get_peer_ip(); DebugL << get_peer_ip();
lock_guard<recursive_mutex> lck(g_mtxSessionCounter);
--(g_mapSessionCounter[get_local_ip()]);
} }
void RtspSession::onError(const SockException& err) { void RtspSession::onError(const SockException& err) {

View File

@ -28,7 +28,6 @@
#define SESSION_RTSPSESSION_H_ #define SESSION_RTSPSESSION_H_
#include <set> #include <set>
#include <atomic>
#include <vector> #include <vector>
#include <unordered_map> #include <unordered_map>
#include "Util/util.h" #include "Util/util.h"
@ -80,7 +79,6 @@ public:
void onRecv(const Buffer::Ptr &pBuf) override; void onRecv(const Buffer::Ptr &pBuf) override;
void onError(const SockException &err) override; void onError(const SockException &err) override;
void onManager() override; void onManager() override;
static uint32_t getSessionCountOnInterface(const string &ifr);
protected: protected:
//RtspSplitter override //RtspSplitter override
/** /**

View File

@ -266,7 +266,7 @@ int main(int argc,char *argv[]) {
//指定RTP over TCP(播放rtsp时有效) //指定RTP over TCP(播放rtsp时有效)
(*player)[RtspPlayer::kRtpType] = PlayerBase::RTP_TCP; (*player)[RtspPlayer::kRtpType] = PlayerBase::RTP_TCP;
//开始播放,如果播放失败或者播放中止,将会自动重试若干次,重试次数在配置文件中配置,默认一直重试 //开始播放,如果播放失败或者播放中止,将会自动重试若干次,重试次数在配置文件中配置,默认一直重试
//player->play(url); player->play(url);
//需要保存PlayerProxy否则作用域结束就会销毁该对象 //需要保存PlayerProxy否则作用域结束就会销毁该对象
proxyMap.emplace(to_string(i), player); proxyMap.emplace(to_string(i), player);
++i; ++i;