如何发现gstreamer元素/插件中的内存泄漏问题?如何分析内存/对象泄漏/引用计数的gst引用计数?有什么例子吗?我正在使用appsrc和appsink在gstreamer管道之间推送和拉取缓冲区。这些元素似乎存在一些内存问题。我有将数据提供给管道的实时源,通常情况下,要在appsrc和appsink上为实时源设置哪些属性?谢谢-opensid
发布于 2013-04-19 00:42:16
您可以使用valgrind (memcheck)或asan (地址清理程序)等工具来检查此类问题。引用计数问题很难找到。
发布于 2014-07-09 11:42:48
如果您使用的是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);
}以前我的这个样例会在30秒内崩溃。现在它会一直运行,直到我杀死它。
发布于 2016-03-15 19:14:21
尝试使用Valgrind tool
请参阅此示例:http://cs.ecs.baylor.edu/~donahoo/tools/valgrind/
https://stackoverflow.com/questions/16072981
复制相似问题