当前位置: 首页 > 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了

http://www.xdnf.cn/news/378127.html

相关文章:

  • 【LeetCode 热题 100】206. 反转链表
  • 洛谷P7528 [USACO21OPEN] Portals G
  • Android开发-Activity启停
  • Halcon之计算抓取螺母的位姿
  • 《Python星球日记》 第54天:卷积神经网络进阶
  • Python 核心概念速查清单
  • LeetCode --- 448 周赛
  • Java Bean容器详解:核心功能与最佳使用实践
  • 自动泊车技术—相机模型
  • OSPF综合实验报告
  • SpringCloud之Ribbon基础认识-服务负载均衡
  • vue3 无缝列表循环
  • 深圳SMT贴片加工厂制造流程解析
  • PaddleOCR本地部署
  • 【Linux系统调试】内存错误检测工具AddressSanitizer (ASan)
  • 基于协同过滤的音乐推荐系统(源码+lw+部署文档+讲解),源码可白嫖!
  • Duplicati:一款跨平台的备份客户端,支持加密、增量、压缩的备份存储在云存储服务和远程文件服务器
  • VBA即用型代码手册:字体Font与插入Insert
  • 卡尔曼滤波算法简介与 Kotlin 实现
  • en_text_100_words
  • leetcode504.七进制数
  • 联邦学习图像分类实战:基于FATE与PyTorch的隐私保护机器学习系统构建指南
  • cadence -- allegro汉化
  • UE5 PCG学习笔记
  • C++笔记-set和map的使用(包含multiset和multimap的讲解)
  • Spring boot 简单开发接口
  • 2025年全新 GPT 4.5 AI 大模型 国内免费调用
  • 缓存理论到实战:技术选型与七层架构设计
  • 工厂节能新路径:精准节能的深度剖析
  • LabVIEW多通道并行数据存储系统