2013-05-21 412 views
0

我在嵌入式系統上試驗gstreamer,我想知道是否有辦法確定gstreamer將使用的最大內存量。如果我有一個簡單的source -> filter -> filter -> sink管道,我可以計算出每個階段將分配多少緩衝區以及它們的最大大小是多少?GStreamer內存緩衝區的使用

我的理解是我不能限制內存的使用,但我至少想了解最壞的情況。這是可能的還是太依賴於運行時間條件和/或數據內容。我也是gstreamer的新手,所以請讓我知道,如果有什麼我可以添加到管道,使其更確定性。

謝謝!

回答

1

使用gstreamer-0.10,您可以使用gst-tracelib(http://cgit.freedesktop.org/~ensonic/gst-tracelib/)來獲取例如峯值內存消耗和各種數據流量有關統計。通常元素不會保留緩衝區的副本。例外是例如隊列像元素和編解碼器(需要保持參考緩衝區)。許多元素試圖就地工作,即他們不分配新的緩衝區,而是改變他們收到的緩衝區並將其傳遞(例如音量)。