Memory leaks Gstreamer元素内存泄漏
如何在gstreamer元素/插件中发现内存泄漏问题?如何分析内存/对象泄漏/引用计数的gst引用计数?有什么例子吗? 我使用appsrc和appsink在gstreamer管道之间推拉缓冲区。这些元素似乎存在一些内存问题。我有一个向管道提供数据的live source,通常在live source的appsrc和appsink上设置哪些属性?Memory leaks Gstreamer元素内存泄漏,memory-leaks,gstreamer,Memory Leaks,Gstreamer,如何在gstreamer元素/插件中发现内存泄漏问题?如何分析内存/对象泄漏/引用计数的gst引用计数?有什么例子吗? 我使用appsrc和appsink在gstreamer管道之间推拉缓冲区。这些元素似乎存在一些内存问题。我有一个向管道提供数据的live source,通常在live source的appsrc和appsink上设置哪些属性? 感谢opensid,您可以使用valgrind(memcheck)或asan(address sanitizer)等工具来检查此类问题。Refcount
感谢opensid,您可以使用valgrind(memcheck)或asan(address sanitizer)等工具来检查此类问题。Refcount问题很难找到 如果您使用的是AppSrc示例,那么有一个相当简单的解决方案,就是将Gst.Buffer分配封装在using语句中 例如,更改以下方法
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);
}
之前对于我的示例,此示例将在中崩溃,请尝试使用
请参见此示例: