// // 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, bool keyframe){ //LOGD("add fragment: ts=%u, index=%u of %u", pts, fragmentIndex, fragmentCount); if(pts!=currentTimestamp){ assert(fragmentCount<=255); currentTimestamp=pts; /*for(Buffer& b:parts){ if(!b.IsEmpty()) b=Buffer(); }*/ currentPacketPartCount=fragmentCount; currentIsKeyframe=keyframe; receivedPartCount=0; } if(fragmentCount==0 || fragmentCount==1){ callback(std::move(pkt), pts, keyframe); return; } if(fragmentIndex callback){ this->callback=callback; }