遇到的两个ffmpeg库函数的坑
来源:互联网 发布:网络时间校准到秒 编辑:程序博客网 时间:2024/05/29 07:10
项目中使用ffmpeg库处理视频时掉进了两个内存泄漏的坑。
1. av_bitstream_filter_filter
下面这种用法,
av_bitstream_filter_filter(h264bsfc, ifmt_ctx->streams[video_index]->codec, NULL, &readPkt.data, &readPkt.size, readPkt.data, readPkt.size, 0);
- 如果去掉这个函数的使用,发现内存变化很小,很稳定。但在使用了这个函数之后,还只是简单的av_packet_unref(&readPkt)的话,发现内存一直在增加。之前看了网上别人介绍这个函数的使用时,看到的大部分都是只是介绍三步,先调用 av_bitstream_filter_init(“h264_mp4toannexb”);初始化一个AVBitStreamFilterContext*指针, 然后直接使用av_bitstream_filter_filter这个函数,使用完后直接av_bitstream_filter_close(h264bsfc);
- 踩了这个坑之后发现,程序总是在视频处理模块崩溃,而且内存飙升很快,并提示malloc内存失败。
- 仔细查资料后才发现,应该在每次使用完readPkt后要记得调用av_free()函数释放readPkt.data内存空间。
2.avcodec_open2
在使用
avcodec_open2(encCtx, pCodec, ¶m);
- 函数打开解码器后,忘记使用avcodec_close进行close掉encCtx导致了内存泄漏。
6 0
- 遇到的两个ffmpeg库函数的坑
- FFmpeg的库函数源代码分析
- ffmpeg遇到的问题
- DialogFrament遇到的两个坑
- 利用库函数求两个数的和
- 使用ffmpeg遇到的问题
- 编译ffmpeg遇到的问题
- 导入ffmpeg 遇到的问题
- 安装配置laravel遇到的两个坑
- Liferay遇到的两个问题
- 今天遇到的两个问题
- 在工作中遇到的两个难题
- 今天遇到的两个问题
- day5:遇到的两个问题
- 今天遇到的两个问题
- mount遇到的两个问题
- RecyclerView遇到的两个bug
- 交叉编译ffmpeg遇到的问题
- [LeetCode]34. Search for a Range
- 百度等公司面试总结
- 4 Python之tuple(元组)
- 历届试题 搭积木 (dfs 优化)
- Mybatis映射文件
- 遇到的两个ffmpeg库函数的坑
- 解决java.io.FileNotFoundException: D:\xxx\yyy (拒绝访问。)问题
- Java:java语句的执行结构、分支结构
- #1050 :求多叉树中的的最长路
- Xml中获取子节点的值
- Apache
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- POJ 2528(线段树 区间更新 离散化)
- 1