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克隆一份 实际就是加上申请空间然后再进行数据赋值

相关推荐
daizhe11 小时前
基于JavaCV实现FFmpeg设置视频moov前置以及截取封面图片
ffmpeg·音视频·javacv
一点晖光2 天前
ffmpeg合并视频
ffmpeg·音视频
简鹿视频2 天前
mp4视频转换成avi格式攻略
ffmpeg·音视频·视频编解码·格式工厂
呆萌小新@渊洁2 天前
Linux离线环境安装ffmpeg
linux·ffmpeg·php
番茄啊3 天前
FFmpeg 使用RTSP服务器录屏并推流
ffmpeg
CHS_Lab4 天前
“非标”MP4文件的恢复方法
ffmpeg·数据恢复·视频恢复·mp4恢复
一点晖光4 天前
ffmpeg视频分辨率转换
ffmpeg·音视频
数据库生产实战4 天前
Oracle的DBMS_SPACE.SPACE_USAGE和dba_segments计算的对象块数为什么不一样?表空间异常暴增的秘密可能就在这里!
oracle·ffmpeg·dba
hjjdebug4 天前
ffmpeg -map 是什么意思?
ffmpeg·map