webrtc代码走读二十一(RtpPacketToSend数据buffer的申请和释放)

一、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(); }

猜你喜欢

转载自blog.csdn.net/CrystalShaw/article/details/131438441
今日推荐