diff --git a/srt/Common.hpp b/srt/Common.hpp index 418a00a3..8b5d57c3 100644 --- a/srt/Common.hpp +++ b/srt/Common.hpp @@ -1,9 +1,19 @@ #ifndef ZLMEDIAKIT_SRT_COMMON_H #define ZLMEDIAKIT_SRT_COMMON_H +#if defined(_WIN32) +#include +#include +#include +#pragma comment (lib, "Ws2_32.lib") +#pragma comment(lib,"Iphlpapi.lib") +#else +#include +#include +#endif // defined(_WIN32) + #include namespace SRT { - using SteadyClock = std::chrono::steady_clock; using TimePoint = std::chrono::time_point; diff --git a/srt/Packet.cpp b/srt/Packet.cpp index 51bc5ab0..b4afbf4a 100644 --- a/srt/Packet.cpp +++ b/srt/Packet.cpp @@ -1,18 +1,7 @@ - -#if defined(_WIN32) -#include -#include -#include -#pragma comment (lib, "Ws2_32.lib") -#pragma comment(lib,"Iphlpapi.lib") -#else -#include -#include -#endif // defined(_WIN32) - -#include -#include "Util/logger.h" #include "Util/MD5.h" +#include "Util/logger.h" +#include + #include "Packet.hpp" namespace SRT { @@ -342,7 +331,6 @@ size_t HandshakePacket::getExtSize() { } return size; } - bool HandshakePacket::storeToData() { _data = BufferRaw::create(); for (auto ex : ext_list) { @@ -445,15 +433,11 @@ uint32_t HandshakePacket::generateSynCookie( // SYN cookie char clienthost[NI_MAXHOST]; char clientport[NI_MAXSERV]; - getnameinfo((struct sockaddr*)addr, - sizeof(struct sockaddr_storage), - clienthost, - sizeof(clienthost), - clientport, - sizeof(clientport), - NI_NUMERICHOST | NI_NUMERICSERV); - int64_t timestamp = (DurationCountMicroseconds(SteadyClock::now() - ts) / 60000000) + distractor.load() + - correction; // secret changes every one minute + getnameinfo( + (struct sockaddr *)addr, sizeof(struct sockaddr_storage), clienthost, sizeof(clienthost), clientport, + sizeof(clientport), NI_NUMERICHOST | NI_NUMERICSERV); + int64_t timestamp = (DurationCountMicroseconds(SteadyClock::now() - ts) / 60000000) + distractor.load() + + correction; // secret changes every one minute std::stringstream cookiestr; cookiestr << clienthost << ":" << clientport << ":" << timestamp; union { diff --git a/srt/Packet.hpp b/srt/Packet.hpp index 668885da..8710e940 100644 --- a/srt/Packet.hpp +++ b/srt/Packet.hpp @@ -63,8 +63,6 @@ public: uint32_t timestamp; uint32_t dst_socket_id; - TimePoint get_ts; // recv or send time - private: BufferRaw::Ptr _data; }; @@ -189,7 +187,8 @@ public: static bool isHandshakePacket(uint8_t *buf, size_t len); static uint32_t getHandshakeType(uint8_t *buf, size_t len); static uint32_t getSynCookie(uint8_t *buf, size_t len); - static uint32_t generateSynCookie(struct sockaddr_storage *addr, TimePoint ts, uint32_t current_cookie = 0, int correction = 0); + static uint32_t + generateSynCookie(struct sockaddr_storage *addr, TimePoint ts, uint32_t current_cookie = 0, int correction = 0); void assignPeerIP(struct sockaddr_storage *addr); ///////ControlPacket override/////// @@ -358,4 +357,4 @@ public: } // namespace SRT -#endif //ZLMEDIAKIT_SRT_PACKET_H \ No newline at end of file +#endif // ZLMEDIAKIT_SRT_PACKET_H \ No newline at end of file diff --git a/srt/PacketSendQueue.cpp b/srt/PacketSendQueue.cpp index 654b1194..92730a4a 100644 --- a/srt/PacketSendQueue.cpp +++ b/srt/PacketSendQueue.cpp @@ -68,7 +68,7 @@ uint32_t PacketSendQueue::timeLatency() { } else { dur = first - last; } - if (dur > (0x01 << 31)) { + if (dur > ((uint32_t)0x01 << 31)) { TraceL << "cycle timeLatency " << dur; dur = 0xffffffff - dur; } diff --git a/srt/PacketSendQueue.hpp b/srt/PacketSendQueue.hpp index 43227aca..be91c663 100644 --- a/srt/PacketSendQueue.hpp +++ b/srt/PacketSendQueue.hpp @@ -25,7 +25,6 @@ public: private: uint32_t timeLatency(); - private: uint32_t _pkt_cap; uint32_t _pkt_latency; diff --git a/srt/SrtTransport.cpp b/srt/SrtTransport.cpp index cce3e910..11b637d7 100644 --- a/srt/SrtTransport.cpp +++ b/srt/SrtTransport.cpp @@ -1,8 +1,9 @@ #include +#include "Util/onceToken.h" + #include "Ack.hpp" #include "Packet.hpp" #include "SrtTransport.hpp" -#include "Util/onceToken.h" namespace SRT { #define SRT_FIELD "srt." @@ -13,7 +14,6 @@ const std::string kPort = SRT_FIELD "port"; const std::string kLatencyMul = SRT_FIELD "latencyMul"; static std::atomic s_srt_socket_id_generate { 125 }; - //////////// SrtTransport ////////////////////////// SrtTransport::SrtTransport(const EventPoller::Ptr &poller) : _poller(poller) { @@ -432,7 +432,6 @@ void SrtTransport::handleDataPacket(uint8_t *buf, int len, struct sockaddr_stora DataPacket::Ptr pkt = std::make_shared(); pkt->loadFromData(buf, len); - pkt->get_ts = _now; std::list list; //TraceL<<" seq="<< pkt->packet_seq_number<<" ts="<timestamp<<" size="<payloadSize()<<\ //" PP="<<(int)pkt->PP<<" O="<<(int)pkt->O<<" kK="<<(int)pkt->KK<<" R="<<(int)pkt->R; diff --git a/srt/SrtTransport.hpp b/srt/SrtTransport.hpp index 49d05677..3545dd95 100644 --- a/srt/SrtTransport.hpp +++ b/srt/SrtTransport.hpp @@ -45,7 +45,7 @@ public: virtual void onSendTSData(const Buffer::Ptr &buffer, bool flush); std::string getIdentifier(); - void unregisterSelf(); +void unregisterSelf(); void unregisterSelfHandshake(); protected: diff --git a/srt/SrtTransportImp.cpp b/srt/SrtTransportImp.cpp index a838a175..1ae37064 100644 --- a/srt/SrtTransportImp.cpp +++ b/srt/SrtTransportImp.cpp @@ -9,16 +9,15 @@ SrtTransportImp::SrtTransportImp(const EventPoller::Ptr &poller) : SrtTransport( SrtTransportImp::~SrtTransportImp() { InfoP(this); uint64_t duration = _alive_ticker.createdTime() / 1000; - WarnP(this) << (_is_pusher ? "srt 推流器(" : "srt 播放器(") - << _media_info._vhost << "/" - << _media_info._app << "/" - << _media_info._streamid - << ")断开,耗时(s):" << duration; + WarnP(this) << (_is_pusher ? "srt 推流器(" : "srt 播放器(") << _media_info._vhost << "/" << _media_info._app << "/" + << _media_info._streamid << ")断开,耗时(s):" << duration; //流量统计事件广播 GET_CONFIG(uint32_t, iFlowThreshold, General::kFlowThreshold); if (_total_bytes >= iFlowThreshold * 1024) { - NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastFlowReport, _media_info, _total_bytes, duration, false, static_cast(*this)); + NoticeCenter::Instance().emitEvent( + Broadcast::kBroadcastFlowReport, _media_info, _total_bytes, duration, false, + static_cast(*this)); } } @@ -71,7 +70,6 @@ bool SrtTransportImp::close(mediakit::MediaSource &sender, bool force) { << sender.getVhost() << "/" << sender.getApp() << "/" << sender.getId() << " " << force; - weak_ptr weak_self = static_pointer_cast(shared_from_this()); getPoller()->async([weak_self, err]() { auto strong_self = weak_self.lock(); @@ -112,10 +110,9 @@ void SrtTransportImp::emitOnPublish() { return; } if (err.empty()) { - strong_self->_muxer = std::make_shared(strong_self->_media_info._vhost, - strong_self->_media_info._app, - strong_self->_media_info._streamid, 0.0f, - option); + strong_self->_muxer = std::make_shared( + strong_self->_media_info._vhost, strong_self->_media_info._app, strong_self->_media_info._streamid, + 0.0f, option); strong_self->_muxer->setMediaListener(strong_self); strong_self->doCachedFunc(); InfoP(strong_self) << "允许 srt 推流"; @@ -126,7 +123,9 @@ void SrtTransportImp::emitOnPublish() { }; //触发推流鉴权事件 - auto flag = NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastMediaPublish, MediaOriginType::srt_push, _media_info, invoker, static_cast(*this)); + auto flag = NoticeCenter::Instance().emitEvent( + Broadcast::kBroadcastMediaPublish, MediaOriginType::srt_push, _media_info, invoker, + static_cast(*this)); if (!flag) { //该事件无人监听,默认不鉴权 invoker("", ProtocolOption()); @@ -149,7 +148,8 @@ void SrtTransportImp::emitOnPlay() { }); }; - auto flag = NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastMediaPlayed, _media_info, invoker, static_cast(*this)); + auto flag = NoticeCenter::Instance().emitEvent( + Broadcast::kBroadcastMediaPlayed, _media_info, invoker, static_cast(*this)); if (!flag) { doPlay(); } diff --git a/srt/SrtTransportImp.hpp b/srt/SrtTransportImp.hpp index 5dc4b228..67cd23ec 100644 --- a/srt/SrtTransportImp.hpp +++ b/srt/SrtTransportImp.hpp @@ -12,7 +12,6 @@ namespace SRT { using namespace std; using namespace toolkit; using namespace mediakit; - class SrtTransportImp : public SrtTransport , public toolkit::SockInfo @@ -27,7 +26,6 @@ public: _total_bytes += len; } void onSendTSData(const Buffer::Ptr &buffer, bool flush) override { SrtTransport::onSendTSData(buffer, flush); } - /// SockInfo override std::string get_local_ip() override; uint16_t get_local_port() override; @@ -86,7 +84,7 @@ private: MultiMediaSourceMuxer::Ptr _muxer; DecoderImp::Ptr _decoder; std::recursive_mutex _func_mtx; - std::deque > _cached_func; + std::deque> _cached_func; }; } // namespace SRT diff --git a/srt/Statistic.hpp b/srt/Statistic.hpp index a2e9f68c..d2a5036e 100644 --- a/srt/Statistic.hpp +++ b/srt/Statistic.hpp @@ -9,7 +9,8 @@ namespace SRT { class PacketRecvRateContext { public: - PacketRecvRateContext(TimePoint start): _start(start) {}; + PacketRecvRateContext(TimePoint start) + : _start(start) {}; ~PacketRecvRateContext() = default; void inputPacket(TimePoint &ts); uint32_t getPacketRecvRate(); @@ -33,7 +34,8 @@ private: class RecvRateContext { public: - RecvRateContext(TimePoint start): _start(start) {}; + RecvRateContext(TimePoint start) + : _start(start) {}; ~RecvRateContext() = default; void inputPacket(TimePoint &ts, size_t size); uint32_t getRecvRate();