Commit b8806657 by xiongguangjie

for srt lantency calculate when handshake

parent 3cca4015
...@@ -49,7 +49,7 @@ void PacketQueue::tryInsertPkt(DataPacket::Ptr pkt){ ...@@ -49,7 +49,7 @@ void PacketQueue::tryInsertPkt(DataPacket::Ptr pkt){
_pkt_map.emplace(pkt->packet_seq_number, pkt); _pkt_map.emplace(pkt->packet_seq_number, pkt);
TraceL<<" cycle packet "<<"expected seq=" << _pkt_expected_seq << " pkt seq=" << pkt->packet_seq_number; TraceL<<" cycle packet "<<"expected seq=" << _pkt_expected_seq << " pkt seq=" << pkt->packet_seq_number;
}else{ }else{
TraceL << "drop packet too later "<< "expected seq=" << _pkt_expected_seq << " pkt seq=" << pkt->packet_seq_number; //TraceL << "drop packet too later "<< "expected seq=" << _pkt_expected_seq << " pkt seq=" << pkt->packet_seq_number;
} }
} }
} }
......
...@@ -117,7 +117,8 @@ void SrtTransport::handleHandshakeInduction(HandshakePacket &pkt, struct sockadd ...@@ -117,7 +117,8 @@ void SrtTransport::handleHandshakeInduction(HandshakePacket &pkt, struct sockadd
sendControlPacket(_handleshake_res, true); sendControlPacket(_handleshake_res, true);
return; return;
} }
_induction_ts = _now;
_start_timestamp = _now;
_init_seq_number = pkt.initial_packet_sequence_number; _init_seq_number = pkt.initial_packet_sequence_number;
_max_window_size = pkt.max_flow_window_size; _max_window_size = pkt.max_flow_window_size;
_mtu = pkt.mtu; _mtu = pkt.mtu;
...@@ -154,7 +155,7 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad ...@@ -154,7 +155,7 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad
HSExtMessage::Ptr req; HSExtMessage::Ptr req;
HSExtStreamID::Ptr sid; HSExtStreamID::Ptr sid;
uint32_t srt_flag = 0xbf; uint32_t srt_flag = 0xbf;
uint16_t delay = 120; uint16_t delay = DurationCountMicroseconds(_now - _induction_ts)*4/1000;
for (auto ext : pkt.ext_list) { for (auto ext : pkt.ext_list) {
//TraceL << getIdentifier() << " ext " << ext->dump(); //TraceL << getIdentifier() << " ext " << ext->dump();
...@@ -170,7 +171,7 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad ...@@ -170,7 +171,7 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad
} }
if(req){ if(req){
srt_flag = req->srt_flag; srt_flag = req->srt_flag;
delay = req->recv_tsbpd_delay; delay = delay <= req->recv_tsbpd_delay ? req->recv_tsbpd_delay : delay;
} }
TraceL << getIdentifier() << " CONCLUSION Phase "; TraceL << getIdentifier() << " CONCLUSION Phase ";
HandshakePacket::Ptr res = std::make_shared<HandshakePacket>(); HandshakePacket::Ptr res = std::make_shared<HandshakePacket>();
......
...@@ -102,6 +102,9 @@ private: ...@@ -102,6 +102,9 @@ private:
TimePoint _now; TimePoint _now;
TimePoint _start_timestamp; TimePoint _start_timestamp;
// for calculate rtt for delay
TimePoint _induction_ts;
uint32_t _mtu = 1500; uint32_t _mtu = 1500;
uint32_t _max_window_size = 8192; uint32_t _max_window_size = 8192;
uint32_t _init_seq_number = 0; uint32_t _init_seq_number = 0;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论