如何在 gstreamer 元素/插件中找到内存泄漏问题?如何分析内存/对象泄漏/引用计数的 gst 引用计数?有什么例子吗?我正在使用appsrc 和appsink 将缓冲区推入和拉出gstreamer 管道。这些元素似乎存在一些内存问题。我有将数据提供给管道的实时源,通常要在 appsrc 和 appsink 上为实时源设置哪些属性?谢谢-opensid
问问题
1748 次
3 回答
0
您可以使用 valgrind (memcheck) 或 asan (address sanitizer) 等工具来检查此类问题。Refcount 问题很难找到。
于 2013-04-18T16:42:16.140 回答
0
如果您使用的是 AppSrc 示例,那么有一个相当简单的解决方案就是将 Gst.Buffer 分配包装在 using 语句中。
EG 改变以下方法
static void PushAppData (object o, Gst.App.NeedDataArgs args) {
ulong mseconds = 0;
if (appsrc.Clock != null)
mseconds = appsrc.Clock.Time / Clock.MSecond;
Gst.Buffer buffer = DrawData (mseconds);
appsrc.PushBuffer (buffer);
}
对此
static void PushAppData (object o, Gst.App.NeedDataArgs args) {
ulong mseconds = 0;
if (appsrc.Clock != null)
mseconds = appsrc.Clock.Time / Clock.MSecond;
using(Gst.Buffer buffer = DrawData (mseconds))
appsrc.PushBuffer (buffer);
}
以前我的这个示例会在 <30 秒内崩溃。现在它一直运行,直到我杀死它。
于 2014-07-09T03:42:48.363 回答
0
于 2016-03-15T11:14:21.477 回答