// // Created by Grishka on 19.03.2018. // #include "PacketReassembler.h" #include "logging.h" #include using namespace tgvoip; PacketReassembler::PacketReassembler(){ } PacketReassembler::~PacketReassembler(){ } void PacketReassembler::Reset(){ } void PacketReassembler::AddFragment(Buffer pkt, unsigned int fragmentIndex, unsigned int fragmentCount, uint32_t pts){ //LOGD("add fragment: ts=%u, index=%u of %u", pts, fragmentIndex, fragmentCount); if(fragmentCount==0 || fragmentCount==1){ callback(std::move(pkt), pts); return; } if(pts!=currentTimestamp){ assert(fragmentCount<=255); currentTimestamp=pts; parts.clear(); parts.resize(fragmentCount); currentPacketPartCount=fragmentCount; } if(fragmentIndex callback){ this->callback=callback; }