avformat_new_stream,传入AVCodec导致的内存泄露(av_mallocz)。

现状:ffmpeg升级后,接口变更,现有API需要自行创建AVCodecContext进行编码。

从老接口升级后,avformat_new_stream传入了AVCodec,频繁创建过程中内存暴涨。只要传入空参数就避免了此类问题,查看ffmpeg相关源代码也会发现其现有代码都是这么写的。

原因:avformat_new_stream如果传入AVCodec,内部会自行创建一个AVCodecContext,avformat_free_context 销毁对象的时候会销毁AVStream相关内容但是不会销毁AVCodecContext,只能自己手动处理(但相关参数已经不建议使用)。

你可能感兴趣的:(avformat_new_stream,传入AVCodec导致的内存泄露(av_mallocz)。)