一、RtpPacketToSend数据buffer申请流程
1)创建buffer对象
1、RTPSenderVideo::SendVideo函数
2、RTPSender::AllocatePacket
RtpPacketToSend::RtpPacketToSend(const ExtensionManager* extensions,
size_t capacity)
: RtpPacket(extensions, capacity) {}
2)申请数据内存块
buffer.h:SetSize()
至此数据buffer申请完毕,可以看出这里的数据buffer是一个std::unique_ptr<T[]> data_类型。
二、RtpPacketToSend数据buffer释放流程
RtpPacketToSend::~RtpPacketToSend()
->RtpPacket::~RtpPacket()
->CopyOnWriteBuffer::~CopyOnWriteBuffer()
->RefCountReleaseStatus Release()
->~BufferT() { MaybeZeroCompleteBuffer(); }