mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-22 00:42:22 +08:00
first commit for srt intergrate
This commit is contained in:
74
srt/Ack.cpp
Normal file
74
srt/Ack.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
#include "Ack.hpp"
|
||||
#include "Common.hpp"
|
||||
|
||||
namespace SRT {
|
||||
bool ACKPacket::loadFromData(uint8_t *buf, size_t len) {
|
||||
if(len < ACK_CIF_SIZE + ControlPacket::HEADER_SIZE){
|
||||
return false;
|
||||
}
|
||||
|
||||
_data = BufferRaw::create();
|
||||
_data->assign((char *)(buf), len);
|
||||
ControlPacket::loadHeader();
|
||||
ack_number = loadUint32(type_specific_info);
|
||||
uint8_t* ptr = (uint8_t*)_data->data()+ControlPacket::HEADER_SIZE;
|
||||
|
||||
last_ack_pkt_seq_number = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
rtt = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
rtt_variance = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
available_buf_size = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
pkt_recv_rate = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
estimated_link_capacity = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
recv_rate = loadUint32(ptr);
|
||||
ptr += 4;
|
||||
|
||||
return true;
|
||||
}
|
||||
bool ACKPacket::storeToData() {
|
||||
_data = BufferRaw::create();
|
||||
_data->setCapacity(HEADER_SIZE + ACK_CIF_SIZE);
|
||||
_data->setSize(HEADER_SIZE + ACK_CIF_SIZE);
|
||||
control_type = ControlPacket::ACK;
|
||||
sub_type = 0;
|
||||
|
||||
storeUint32(type_specific_info,ack_number);
|
||||
storeToHeader();
|
||||
|
||||
uint8_t* ptr = (uint8_t*)_data->data()+ControlPacket::HEADER_SIZE;
|
||||
|
||||
storeUint32(ptr,last_ack_pkt_seq_number);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,rtt);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,rtt_variance);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,pkt_recv_rate);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,available_buf_size);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,estimated_link_capacity);
|
||||
ptr += 4;
|
||||
|
||||
storeUint32(ptr,recv_rate);
|
||||
ptr += 4;
|
||||
|
||||
return true;
|
||||
}
|
||||
} // namespace
|
||||
Reference in New Issue
Block a user