1.AVPacket相关函数介绍

操作AVPacket的函数大约有30个,主要分为:AVPacket的创建初始化,AVPacket中的data数据管理(clone,free,copy),AVPacket中的side_data数据管理。

void av_init_packet(AVPacket *pkt);

初始化packet的值为默认值,该函数不会影响data引用的数据缓存空间和size,需要单独处理。

int av_new_packet(AVPacket *pkt, int size);

av_init_packet的增强版,不但会初始化字段,还为data分配了存储空间

AVPacket *av_packet_alloc(void);

创建一个AVPacket,将其字段设为默认值(data为空,没有数据缓存空间)。

void av_packet_free(AVPacket **pkt);

释放使用av_packet_alloc创建的AVPacket,如果该Packet有引用计数(packet->buf不为空),则先调用av_packet_unref。

AVPacket *av_packet_clone(const AVPacket *src);

其功能是av_packet_alloc和av_packet_ref

int av_copy_packet(AVPacket *dst, const AVPacket *src);

复制一个新的packet,包括数据缓存

int av_copy_packet_side_data(AVPacket *dst, const AVPacket *src);

初始化一个引用计数的packet,并指定了其数据缓存

int av_grow_packet(AVPacket *pkt, int grow_by);

增大Packet->data指向的数据缓存

void av_shrink_packet(AVPacket *pkt, int size);

减小Packet->data指向的数据缓存

最新文章

  1. 关于2016.12.12——T1的反思:凸包的意义与应用
  2. java连接Oracle数据库
  3. Visual Studio Code 使用 Typings 实现智能提示功能
  4. YL-64 颜色传感器
  5. mysql学习笔记 第九天
  6. SAP中主数据和单据的删除
  7. 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)
  8. 《算法导论》习题解答 Chapter 22.1-4(去除重边)
  9. web自动化框架之三获取数据库值与界面值比较~~
  10. iOS NSMutableArray替换某个元素
  11. thinkphp连接oracle
  12. HDU-1234(string字符串)
  13. windows设备驱动安装接口(自己仿写)
  14. <正见>摘抄
  15. SpringMVC Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
  16. 自学Zabbix3.6.3-触发器triggers expression表达式
  17. oracle查询16个小题
  18. Java遍历Map对象的四种方式
  19. python 图片识别灰度
  20. [python]上传文件验证

热门文章

  1. php 168任意代码执行漏洞之php的Complex (curly) syntax
  2. Netty:ChannelInitializer
  3. 我的.gitignore下配置。存在这里一下。日后有空研究研究!
  4. asp.net core 系列 14 错误处理
  5. C#7.0新特性
  6. SB!SB!SB!
  7. Linux基础知识第七讲,用户权限以及用户操作命令
  8. 是时候给你的产品配一个AI问答助手了!
  9. JDBC 异常简介 jDBC简介(六)
  10. C#反射与特性使用简介