如何在gstreamer元素/插件中找到内存泄漏问题?如何分析内存/对象泄漏/引用计数的gst引用计数?任何例子? 我正在使用appsrc和appsink来推送缓冲区和gstreamer管道。似乎这些元素存在一些内存问题。我有实时源将数据提供给管道,通常在appsrc上设置的属性和实时源的appsink是什么? 感谢-opensid
答案 0 :(得分:0)
您可以使用valgrind(memcheck)或asan(地址清理程序)等工具来检查此类问题。 Refcount问题很难找到。
答案 1 :(得分:0)
如果您正在使用AppSrc示例,那么这是一个相当简单的解决方案,即将Gst.Buffer分配包装在using语句中。
E.G。更改以下方法
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秒内崩溃。现在它一直运行直到我杀了它。
答案 2 :(得分:0)