Commit 92420f83 by xiongguangjie

check stream id

parent cd6b0ee0
...@@ -153,6 +153,8 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad ...@@ -153,6 +153,8 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad
// first // first
HSExtMessage::Ptr req; HSExtMessage::Ptr req;
HSExtStreamID::Ptr sid; HSExtStreamID::Ptr sid;
uint32_t srt_flag = 0xbf;
uint16_t delay = 120;
for (auto ext : pkt.ext_list) { for (auto ext : pkt.ext_list) {
//TraceL << getIdentifier() << " ext " << ext->dump(); //TraceL << getIdentifier() << " ext " << ext->dump();
...@@ -166,6 +168,10 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad ...@@ -166,6 +168,10 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad
if(sid){ if(sid){
_stream_id = sid->streamid; _stream_id = sid->streamid;
} }
if(req){
srt_flag = req->srt_flag;
delay = req->recv_tsbpd_delay;
}
TraceL << getIdentifier() << " CONCLUSION Phase "; TraceL << getIdentifier() << " CONCLUSION Phase ";
HandshakePacket::Ptr res = std::make_shared<HandshakePacket>(); HandshakePacket::Ptr res = std::make_shared<HandshakePacket>();
res->dst_socket_id = _peer_socket_id; res->dst_socket_id = _peer_socket_id;
...@@ -183,17 +189,17 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad ...@@ -183,17 +189,17 @@ void SrtTransport::handleHandshakeConclusion(HandshakePacket &pkt, struct sockad
HSExtMessage::Ptr ext = std::make_shared<HSExtMessage>(); HSExtMessage::Ptr ext = std::make_shared<HSExtMessage>();
ext->extension_type = HSExt::SRT_CMD_HSRSP; ext->extension_type = HSExt::SRT_CMD_HSRSP;
ext->srt_version = srtVersion(1, 5, 0); ext->srt_version = srtVersion(1, 5, 0);
ext->srt_flag = req->srt_flag; ext->srt_flag = srt_flag;
ext->recv_tsbpd_delay = ext->send_tsbpd_delay = req->recv_tsbpd_delay; ext->recv_tsbpd_delay = ext->send_tsbpd_delay = delay;
res->ext_list.push_back(std::move(ext)); res->ext_list.push_back(std::move(ext));
res->storeToData(); res->storeToData();
_handleshake_res = res; _handleshake_res = res;
unregisterSelfHandshake(); unregisterSelfHandshake();
registerSelf(); registerSelf();
sendControlPacket(res, true); sendControlPacket(res, true);
TraceL<<" buf size = "<<res->max_flow_window_size<<" init seq ="<<_init_seq_number<<" lantency="<<req->recv_tsbpd_delay; TraceL<<" buf size = "<<res->max_flow_window_size<<" init seq ="<<_init_seq_number<<" lantency="<<delay;
_recv_buf = std::make_shared<PacketQueue>(res->max_flow_window_size,_init_seq_number, req->recv_tsbpd_delay*1e6); _recv_buf = std::make_shared<PacketQueue>(res->max_flow_window_size,_init_seq_number, delay*1e6);
_send_buf = std::make_shared<PacketQueue>(res->max_flow_window_size,_init_seq_number, req->recv_tsbpd_delay*1e6); _send_buf = std::make_shared<PacketQueue>(res->max_flow_window_size,_init_seq_number, delay*1e6);
_send_packet_seq_number = _init_seq_number; _send_packet_seq_number = _init_seq_number;
onHandShakeFinished(_stream_id,addr); onHandShakeFinished(_stream_id,addr);
} else { } else {
......
...@@ -25,10 +25,16 @@ SrtTransportImp::~SrtTransportImp() { ...@@ -25,10 +25,16 @@ SrtTransportImp::~SrtTransportImp() {
void SrtTransportImp::onHandShakeFinished(std::string &streamid,struct sockaddr_storage *addr) { void SrtTransportImp::onHandShakeFinished(std::string &streamid,struct sockaddr_storage *addr) {
// TODO parse streamid like this zlmediakit.com/live/test?token=1213444&type=pusher // TODO parse streamid like this zlmediakit.com/live/test?token=1213444&type=push
if(!_addr){ if(!_addr){
_addr.reset(new sockaddr_storage(*((sockaddr_storage *)addr))); _addr.reset(new sockaddr_storage(*((sockaddr_storage *)addr)));
} }
_is_pusher = false;
TraceL<<" stream id "<<streamid;
if(streamid.empty()){
onShutdown(SockException(Err_shutdown, "streamid not empty"));
return;
}
_media_info.parse("srt://"+streamid); _media_info.parse("srt://"+streamid);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论