WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf
Posted 一苇渡江694
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf相关的知识,希望对你有一定的参考价值。
rtc_base copy_on_write_buffer
在WebRTC中,不论是发送接收数据通道的数据、还是发送接收音视频数据,数据本身都存储于一个临时的Buffer中,这个Buffer的实现类为CopyOnWriteBuffer。顾名思义,该Buffer实现了 “写时复制” 的技术。
封装了一个写时复制缓存CopyOnWriteBuffer,其实就是封装了一个共享指针Buffer以及处理nullptr Buffer的情况,WebRTC中常用于RTP包的传递。
Copy-on-write 主要用于共享操作系统进程的虚拟内存,在 fork 系统调用的实现中。通常,该进程不会修改任何内存并立即执行一个新进程,完全替换地址空间。因此,在分叉期间复制所有进程的内存将是浪费的,而是使用写时复制技术。
通过将某些内存页标记为只读并记录对该页的引用次数,可以使用页表有效地实现写时复制。当数据写入这些页面时,操作系统内核会拦截写入尝试并分配一个新的物理页面,该页面使用写时复制数据进行初始化,但如果只有一个引用,则可以跳过分配。然后内核用新的(可写的)页更新页表,减少引用的数量,并执行写操作。新分配确保一个进程的内存变化在另一个进程中不可见。
构造函数:
CopyOnWriteBuffer();
// Share the data with an existing buffer.
CopyOnWriteBuffer(const CopyOnWrite
以上是关于WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC Native M96 基础Base模块介绍之网络相关的封装
WebRTC Native M96 基础Base模块介绍之网络相关的封装
WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf
WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf
WebRTC Native M96 基础Base模块介绍之缓冲区相关的封装(CopyOnWriteBufferByteBufferWriterBitBufferWriterBufferTBuf