我正在嵌入式系统上试验gstreamer,我想知道是否有办法确定gstreamer将使用的最大内存量。如果我有一个简单的source -> filter -> filter -> sink
管道,我可以计算出每个阶段将分配多少缓冲区以及它们的最大大小是多少?
我的理解是我无法限制内存使用量,但我至少想了解最坏的情况。这是可能的还是过于依赖于运行时条件和/或数据内容。我也是gstreamer的新手,所以请告诉我是否有什么东西可以添加到管道中以使其更具确定性。
谢谢!
答案 0 :(得分:1)
使用gstreamer-0.10,您可以使用gst-tracelib(http://cgit.freedesktop.org/~ensonic/gst-tracelib/)获取例如峰值内存消耗和各种数据流相关的统计数据。通常,元素不会保留缓冲区的副本。例外是例如队列像元素和编解码器(需要保持参考缓冲区)。许多元素尝试就地工作,即它们不分配新缓冲区,而是更改它们接收的缓冲区并将其传递(例如卷)。