gpt4 book ai didi

ffmpeg - 正确清洁 AVFrame

转载 作者:行者123 更新时间:2023-12-04 23:24:10 39 4
gpt4 key购买 nike

我正在使用 av_frame_alloc() 函数创建 AVFrame 对象并使用内部调用 av_frame_unref() 的 av_frame_free(&frame) 清除它,但它没有正确清理内存。我的应用程序的堆大小在运行时呈指数增长。

不工作:

AVFrame* frame = av_frame_alloc();
av_frame_free(&frame);

在职的:
AVFrame* frame = av_frame_alloc();
av_free(frame->data[0]);

据我所知, av_frame_free() 调用 av_freep() 调用 av_free() 来释放动态内存。内存被清理,如果我直接使用 av_free(frame->data[0]) 而不是 av_frame_free(&frame)

最佳答案

我使用带有 H.264 的 libav 开发了一个关于视频屏幕共享应用程序的个人项目,以进行 60 FPS 视频编码。

为了解决我的内存泄漏问题,我分配了 frame使用 av_frame_alloc , 我用 av_frame_make_writable 使它在每个周期都可写我使用 av_free 释放他们的内存或 av_freep .

因此,请使用其中之一:

av_free(frame);
av_freep(frame);

关于ffmpeg - 正确清洁 AVFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55451248/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com