2013-05-21 219 views
0

我在嵌入式系统上试验gstreamer,我想知道是否有办法确定gstreamer将使用的最大内存量。如果我有一个简单的source -> filter -> filter -> sink管道,我可以计算出每个阶段将分配多少缓冲区以及它们的最大大小是多少?GStreamer内存缓冲区的使用

我的理解是我不能限制内存的使用,但我至少想了解最坏的情况。这是可能的还是太依赖于运行时间条件和/或数据内容。我也是gstreamer的新手,所以请让我知道,如果有什么我可以添加到管道,使其更确定性。

谢谢!

回答

1

使用gstreamer-0.10,您可以使用gst-tracelib(http://cgit.freedesktop.org/~ensonic/gst-tracelib/)来获取例如峰值内存消耗和各种数据流量有关统计。通常元素不会保留缓冲区的副本。例外是例如队列像元素和编解码器(需要保持参考缓冲区)。许多元素试图就地工作,即他们不分配新的缓冲区,而是改变他们收到的缓冲区并将其传递(例如音量)。