当前位置: 首页 > article >正文

ffmpeg内存模型

文章目录

    • 展示图
    • 拷贝packet
  • 重要!!!
      • avpacket.c相关函数
        • av_packet_alloc 简单的赋值 里面的还有没有进行初始化的指针
        • av_packet_ref

展示图

在这里插入图片描述

拷贝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克隆一份 实际就是加上申请空间然后再进行数据赋值
在这里插入图片描述


http://www.kler.cn/a/392493.html

相关文章:

  • 重温设计模式--观察者模式
  • WebRTC服务质量(07)- 重传机制(04) 接收NACK消息
  • ReactPress 1.6.0:重塑博客体验,引领内容创新
  • [Python3] Sanic中间件
  • Element-ui的使用教程 基于HBuilder X
  • vue 基础学习
  • 【go从零单排】go中的range的用法
  • 【原创】java+ssm+mysql美食论坛网系统设计与实现
  • macOS 应用公证指南:使用 fastlane 实现自动化公证流程
  • 网络安全之信息收集
  • AlphaFold3中文使用说明
  • 11月上海月赛解报告(丙组)T5
  • Castle.DynamicProxy的NET Core和Framework的AOP实施
  • 15 个改变世界的开源项目:塑造现代技术的先锋力量
  • 在 .NET 6.0 中创建用于 CRUD 操作的 Web API
  • 上河AI上线ComfyUI工作台
  • 如何使用OpenCV和Python进行相机校准
  • Python+robotframework接口自动化测试实操(超详细总结)
  • 【Docker】Docker基础及docker-compose
  • 传奇996_19——龙岭总结
  • 最全最简单理解迭代器
  • HarmonyOS 如何实现传输中的数据加密
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • Android Mobile Network Settings | APN 菜单加载异常
  • Docker如何以配置文件方式安装nginx
  • WPF应用设置参数存储