原文链接:https://blog.csdn.net/ice_ly000/article/details/90510504
av_realloc() 声明:

所属库:libavutil(lavu),该库是ffmpeg的功能库,当前函数属于内存管理功能
头文件:libavutil/mem.h
功能:1. 分配空间 / 重新分配空间(已分配空间的伸缩) / 释放一块内存。
1)ptr为NULL,且size>0时,分配一块新的内存块;
2)ptr不为空,size=0时,释放ptr指向的内存空间;
3) ptr不为空,size>0时,扩展ptr指向的内存空间;
4)ptr不为空,size<0时,收缩ptr指向的内存块空间;
2. 注意一点就是av_malloc()保证内存对齐,而本函数不保证内存对齐

/**
* 分配、重新分配或释放一块内存。** 如果 `ptr` 为 `NULL` 且 `size` > 0,则分配一个新块。 如果 `size` 是* 零,释放`ptr`指向的内存块。 否则,展开或* 根据 `size` 缩小内存块。** @param ptr 指向已分配的内存块的指针* av_realloc() 或 `NULL`* @param size 要分配的内存块的字节大小或* 重新分配** @return 指向新分配块的指针,如果块为“NULL”* 不能重新分配或该函数用于释放内存块** @warning 与 av_malloc() 不同,不保证返回的指针是* 正确对齐。* @see av_fast_realloc()* @见av_reallocp()*/
void *av_realloc(void *ptr, size_t size) av_alloc_size(2);

av_realloc() 源码:

void *av_realloc(void *ptr, size_t size)
{/* let's disallow possibly ambiguous cases */if (size > (max_alloc_size - 32))return NULL;#if HAVE_ALIGNED_MALLOCreturn _aligned_realloc(ptr, size + !size, ALIGN);
#elsereturn realloc(ptr, size + !size);
#endif
}

av_realloc() 实现利用的是c库realloc()和_aligned_realloc(),

av_realloc相关推荐

  1. java和ffmpeg使用内存转码_FFMPEG基于内存的转码实例

    我在6月份写了篇文章<FFMPEG基于内存的转码实例>,讲如何把视频转码后放到内存,然后通过网络发送出去.但该文章只完成了一半,即输入的数据依然是从磁盘文件中读取.在实际应用中,有很多数据 ...

  2. 【三分钟学习FFMPEG一个知识点】FFMPEG关于avio_alloc_context申请使用内存释放问题

    问题: 使用ffmpeg发现av_malloc申请的内存最后不能用av_free函数释放,会崩溃. 代码示例: unsigned char * iobuffer = NULL; iobuffer = ...

  3. FFMPEG avformat_open_input

    FFMPEG avformat_open_input avformat_open_input(),该函数用于打开多媒体数据并且获取一些信息 声明libavformat/avformat.h /*** ...

  4. ffmpeg 过程分析

    简介 FFmpeg是一个集录制.转换.音/视频编码解码功能为一体的完整的开源解决方案.FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用.FFmpeg支持MPEG.Div ...

  5. ffmpeg分析系列

    hello,各位好,本人是一名嵌入式软件工程师,目前正使用ffmpeg开发一款嵌入式多媒体播放器,<ffmpeg分析>系列博文是本人在阅读ffmpeg源代码时所做的笔记,希望对各位有点帮助 ...

  6. FFMPEG基于内存的转码实例——输入输出视频均在内存

    我在6月份写了篇文章<FFMPEG基于内存的转码实例>,讲如何把视频转码后放到内存,然后通过网络发送出去.但该文章只完成了一半,即输入的数据依然是从磁盘文件中读取.在实际应用中,有很多数据 ...

  7. FFMPEG基于内存的转码实例

    前面有文章写道,尝试在FFMPEG里面直接使用FTP协议将H.264祼码流封装为AVI视频格式存储到FTP服务器上,遗憾的是以失败告终.然此事须解决,在多方考虑之后,决定使用内存临时存储,而不是写入磁 ...

  8. FFmpeg源代码简单分析:结构体成员管理系统-AVOption

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  9. FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

最新文章

  1. 计算距离torch.nn.PairwiseDistance
  2. 【转】EXC_BAD_ACCESS问题在xode4下的调试技巧
  3. HTML5 - Canvas动画样例(谷歌弹跳球)
  4. 数据库 统计数据收集 有什么作用_《原神》荒山孤剑录2/5收集汇总 荒山孤剑录作用是什么...
  5. 为了运行内存多两G,多花几百块值不值?
  6. mysqldump -extended-insert参数的使用
  7. FileSaver、js-xlsx、SheetJS在线报表预览导出
  8. Android的onCreateOptionsMenu()创建菜单Menu详解
  9. 计算机c盘如何扩大,C盘太小怎么办?教你扩大容量!
  10. 深度解读 - TDD(测试驱动开发)
  11. C语言猜数字游戏的设计
  12. React脚手架开发
  13. 关于国际标准书号ISBN
  14. %1 不是有效的 Win32 应用程序。
  15. 用Python编程语言来实现阿姆斯特朗数的检查
  16. 激活win10专业版最简单的方法
  17. 如何查看一个人发表的SCI数量
  18. 学术规范与论文写作(期末考试答案)(方便检索版)
  19. 复旦大学计算机专业好还是浙大好,复旦大学和浙江大学,哪个更强一点?很多人都猜错了...
  20. 程序设计大作业---超长正整数的减法

热门文章

  1. 17届学长分享:如何集齐BAT三家offer
  2. python写安卓游戏_Python 3d最新安卓版下载,Python 3d游戏最新安卓版下载 v1.0 - 游戏盒子下载站...
  3. Hbuilder真机调试
  4. Word中没有EndNote加载项
  5. Zabbix监控系统架构原理(一)
  6. 【数据库原理与SQL Server应用】Part02——数据模型
  7. windows下开启远程连接Mysql
  8. 3GPP R17空闲态省电特性
  9. SIMCOM推出全网通小尺寸4G模块SIM7100CE
  10. 安卓逆向修仙之路(第一天)一个快大一的小伙子带你学习