After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 596849 - gnlcomposition: Allow low-memory usage
gnlcomposition: Allow low-memory usage
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gnonlin
git master
Other Linux
: Normal enhancement
: 1.3.90
Assigned To: GStreamer Maintainers
Edward Hervey
Depends on:
Blocks: 593377 639600
 
 
Reported: 2009-09-30 10:35 UTC by Edward Hervey
Modified: 2014-09-24 08:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
composition: Add a property defining deactivated elements state (10.91 KB, patch)
2014-05-24 21:33 UTC, Thibault Saunier
committed Details | Review

Description Edward Hervey 2009-09-30 10:35:55 UTC
Currently objects being used in the composition are brought to PLAYING/PAUSED when used for the first time, and then frozen in that state after they're no longer used.

We need a mode in GnlComposition that would allow unused objects to be set back to NULL/READY when they're no longer use (and reduce the memory usage as a side effect).
Comment 1 Edward Hervey 2009-09-30 10:36:37 UTC
Blocks pitivi "High memory usage" bug
Comment 2 Marcin Lewandowski 2012-07-30 09:32:28 UTC
I can confirm the issue, my GNL pipeline reaches 700 MB just after playing 18 videos.
Comment 3 Edward Hervey 2012-08-22 07:18:13 UTC
This is still the case in gnonlin 1.0 fwiw
Comment 4 Thibault Saunier 2014-05-24 21:33:44 UTC
Created attachment 277123 [details] [review]
composition: Add a property defining deactivated elements state

In the composition many elements are not used, until now, they were
always set to the PAUSED state though it makes sense to be able to
do gapless playback it is sometimes not ideal to preserve memory
usage and it means the more children the composition has the more
threads are used and it is very simple to reach the kernel hard
limit number of threads. In order to avoid that to happen, we set
default state of unused thread to READY and we add a property to
the composition so that users can override that default behaviour.

+ Make sure we send "stream-start" again when changing our ghostpad to
avoid "Data flow before stream-start assertion"

+ Fix unit tests, do not check refcount when changing state as it can
vary.
Comment 5 Thibault Saunier 2014-06-24 10:21:16 UTC
Attachment 277123 [details] pushed as b393729 - composition: Add a property defining deactivated elements state