gpt4 book ai didi

memory-leaks - 使用 gstbuffer 时内存泄漏

转载 作者:行者123 更新时间:2023-12-04 18:00:15 26 4
gpt4 key购买 nike

我有一个管道,它从网络摄像头获取数据并进行处理。

对于处理,我需要将该缓冲区拉到 应用接收器并使用 将其插入管道appsrc 元素。

在插入时我使用过 gst_buffer_new_wrapped 功能。

然后每次我推送数据时都会分配一个新的缓冲区。但是如何释放该内存是问题所在。

我试过 gst_buffer_unref(buffer);

然后得到以下错误。

 Error in `./uuHiesSoaServer': free(): invalid pointer: 0x00007fddf52f6000 

我已经将数据放入一个无符号字符指针中,然后根据大小包装到一个 gstbuffer 中。

现在如何释放分配的内存?
g_signal_emit_by_name (Source, "push-buffer", Buffer, &ret);

我已经使用上述函数将数据推送到 Source(appsrc) 中。

该函数将持续调用一个单独的线程。

当数据可用时,线程函数将使用
gst_buffer_new_wrapped((void *)data, Size);

检查 valgrind 时,对于内存泄漏,上面的行显示为泄漏。

如何解决这个问题?

最佳答案

你如何将缓冲区推送到 appsrc 中?

如果您使用 gst_app_src_push_buffer 函数,我想您不必释放资源,因为 gst_app_src_push_buffer将拥有缓冲区(这意味着它也释放它)
查询 this example

如果您使用需要数据回调,您可能需要释放数据 - 检查 this example

HTH

关于memory-leaks - 使用 gstbuffer 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301355/

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