ffmpeg内存模型

文章目录

展示图

拷贝packet

拷贝packet有两种情况

1: 两个packet的buf引用的是同一个数据缓冲空间,类似与浅拷贝

2:两个packet的buf引用的是不同的数据缓冲空间,类似与深拷贝

重要!!!

当我们进行浅拷贝的时候 AVBuffer里面的 refcount就会+1 表示有多一个指向此范围的结构体

当释放引用共享空间的packet的时候 这个计数就会-1 当计数为0的时候 就会释放掉引用的缓存空间

AVFrame也是相同的机制

注意 重要内容为
真实的数据为 avpacket 里面的avbufferRef 里面的AvBuffer

avpacket.c相关函数

av_packet_alloc 简单的赋值 里面的还有没有进行初始化的指针
av_packet_ref

如果这里有数据的话 则会简单的进行指针的拷贝

然后将相关的引用计数给+1

avframe的逻辑也差不多如此

av_packet_copy_props 拷贝全部属性AVPacket

av_packet_clone克隆一份 实际就是加上申请空间然后再进行数据赋值

相关推荐
卖猪肉的痴汉12 小时前
1.1 Linux 编译FFmpeg 4.4.1
linux·ffmpeg
东风西巷14 小时前
AudioLab安卓版:音频处理,一应俱全
ffmpeg·音视频·软件需求
光电的一只菜鸡1 天前
ubuntu之坑(十四)——安装FFmpeg进行本地视频推流(在海思平台上运行)
ubuntu·ffmpeg·音视频
weixin_428498491 天前
FFmpeg 压缩视频文件
ffmpeg
AJi1 天前
Android音视频框架探索(三):系统播放器MediaPlayer的创建流程
android·ffmpeg·音视频开发
aqi002 天前
FFmpeg开发笔记(六十六)Windows给FFmpeg集成LC3音频的编码器liblc3
ffmpeg·音视频·直播·流媒体
向上的车轮2 天前
FFmpeg是什么?
ffmpeg
道剑剑非道2 天前
QT开发技术【ffmpeg EVideo录屏软件 一】
开发语言·qt·ffmpeg
aqi002 天前
FFmpeg开发笔记(六十五)Linux给FFmpeg集成LC3音频的编码器liblc3
ffmpeg·音视频·直播·流媒体
allnlei4 天前
修改FFMpeg的日志函数av_log,使其在记录日志时能显示调用该函数的位置(文件名和行号)
ffmpeg