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

ffmpeg 写入avpacket时候,即av_interleaved_write_frame方法是如何不需要 业务层释放avpacket的 逻辑分析

我们在通过 av_interleaved_write_frame方法 写入 avpacket的时候,通常不需要关心 avpacket的生命周期。

本文分析一下内部实现的部分。

----> 代表一个内部实现。

A(){

        B();

        C();

}

B(){

        D();

}

表示为:

A

---->B();

        ---->D();

---->C();

int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt)

---->write_packets_common(s, pkt, 1/*interleaved*/);

        ---->write_packet_common(s, st, pkt, interleaved);

                ---->interleaved_write_packet(s, pkt, 0);

                        ---->interleave_packet(s, &opkt, pkt, flush); 生命周期此方法内部

                                ---->ff_interleave_packet_per_dts(s, out, in, flush);

                                        ---->ff_interleave_add_packet(s, pkt, interleave_compare_dts)

                                                ----> av_packet_move_ref(&this_pktl->pkt, pkt);//就是这里

                        ---->pkt = NULL;//最后还置为nullptr了

相关文章:

  • 2003-2020年高铁线路信息数据
  • 第七章 数据库编程
  • 机器学习第四讲:无监督学习 → 给无标签积木自由组合,发现隐藏规律
  • redis sentinel和redis cluster的主从切换选举过程
  • 77.评论日记
  • Unity基础学习(十)Camera组件
  • 【Vue】vuex的getters mapState mapGetters mapMutations mapActions的使用
  • milvus+flask山寨复刻《从零构建向量数据库》第7章
  • 常见的降维算法
  • 右值引用的剖析
  • OpenCv实战笔记(4)基于opencv实现ORB特征匹配检测
  • SpringCloud之Ribbon基础认识-服务负载均衡
  • MySQL索引与事务
  • 游戏引擎学习第268天:合并调试链表与分组
  • windows 环境下 python环境安装与配置
  • KEIL_C51和KEIL_MDK共存
  • AI大模型学习十七、利用Dify搭建 AI 图片生成应用
  • average per-pixel disparity error: EPE及不同距离值下的误差曲线
  • Python函数式编程入门:闭包与装饰器详解
  • 开疆智能Canopen转Profinet网关连接工博士GBS20机器人配置案例
  • 航行警告:渤海海峡黄海北部执行军事任务,禁止驶入
  • 重庆荣昌区委区政府再设“答谢宴”,邀请800余名志愿者机关食堂用餐
  • 印方称所有敌对行动均得到反击和回应,不会升级冲突
  • 巴基斯坦空袭印度多地空军基地,巴战机进入印领空
  • 2025年4月份CPI环比由降转涨,核心CPI涨幅稳定
  • 屈晓华履新四川省社科联党组书记,此前担任省国动办主任