2013-05-21 4 views
0

Я экспериментирую с gstreamer во встроенной системе, и мне интересно, есть ли способ определить максимальную сумму, которую будет использовать гейтер. Если у меня есть простой конвейер source -> filter -> filter -> sink, могу ли я выяснить, сколько буферов на каждом этапе будет выделено и каков будет их максимальный размер?Использование буфера памяти GStreamer

Мое понимание заключается в том, что я не могу ограничить использование памяти, но, по крайней мере, мне хотелось бы разобраться в худшем случае. Возможно ли это, или это слишком зависит от условий выполнения и/или данных. Я также новичок в gstreamer, поэтому, пожалуйста, дайте мне знать, есть ли что-то, что я мог бы добавить к конвейеру, чтобы сделать его более детерминированным.

Спасибо!

ответ

1

С gstreamer-0.10 вы можете использовать gst-tracelib (http://cgit.freedesktop.org/~ensonic/gst-tracelib/), чтобы получить, например. пиковое потребление памяти и различные потоки данных связаны с статистикой. Обычно элементы не сохраняют копии буферов. Исключение составляют, например, элементы очереди и кодеки (которые должны содержать опорные буферы). Многие элементы пытаются работать на месте, то есть они не выделяют новые буферы, а скорее изменяют полученный буфер и передают его (например, том).

Смежные вопросы