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

相关推荐
胖_大海_1 天前
【FFmpeg+Surface 底层渲染,实现超低延迟100ms】
ffmpeg
冷冷的菜哥2 天前
springboot调用ffmpeg实现对视频的截图,截取与水印
java·spring boot·ffmpeg·音视频·水印·截图·截取
进击的CJR2 天前
redis哨兵实现主从自动切换
mysql·ffmpeg·dba
huahualaly2 天前
重建oracle测试库步骤
数据库·oracle·ffmpeg
aqi002 天前
FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer
android·ffmpeg·kotlin·音视频·直播·流媒体
lizongyao3 天前
FFMPEG命令行典型案例
ffmpeg
冷冷的菜哥3 天前
ASP.NET Core调用ffmpeg对视频进行截图,截取,增加水印
开发语言·后端·ffmpeg·asp.net·音视频·asp.net core
冷冷的菜哥3 天前
go(golang)调用ffmpeg对视频进行截图、截取、增加水印
后端·golang·ffmpeg·go·音视频·水印截取截图
小尧嵌入式3 天前
【基础学习七十】ffmpeg命令
c++·stm32·嵌入式硬件·ffmpeg
烧饼Fighting3 天前
统信UOS操作系统离线安装ffmpeg
开发语言·javascript·ffmpeg