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 653925 - mpegtsparse eats input buffers
mpegtsparse eats input buffers
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.22
Other Mac OS
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-07-04 05:17 UTC by Roland Peffer
Modified: 2011-11-03 22:39 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Roland Peffer 2011-07-04 05:17:53 UTC
I noticed that mpegtsparse does not always unref deliverd input buffers coming from a src element. This happens after some minutes delivering a live TV stream.
So after a while a lot of memory gets lost.

Buffer size is 80 KB. But happens with other buffer sizes as well.

I could monitor this as I delivered the Gst Buffers with my own malloc Free function.

Gstreamer version is 0.10.34, gst plugins bad is 0.10.22
Comment 1 Tim-Philipp Müller 2011-07-04 09:12:34 UTC
Maybe you could run a gst-launch-0.10 pipeline through valgrind (set num-buffers on the source to make it eos out naturally) like this:

 $ G_SLICE=always-malloc valgrind --leak-check=yes /usr/bin/gst-launch-0.10 yoursource num-buffers=100000 ! mpegtsparse ! fakesink
Comment 2 Roland Peffer 2011-07-05 12:34:05 UTC
After playing around I think I understand a little bit more what is happening.
When I have a good reception and the incoming transport stream has no errors all works fine.
The transport stream parser just keeps 2-4 GstBuffer Objects referenced.
But if I have poor reception and the incoming transport stream contains uncorrected errors, 
the number  of not completly unref. GstBuffers increases.


Just I was not able to detect this as memory leaks with OSX Instruments. What could mean that the pointer to the GstBuffer Objects are still vaild somewhere, and just a simple unref while the filters are in play mode is missing in case of ts errors.
Comment 3 Tobias Mueller 2011-11-03 22:39:29 UTC
Roland, can you get us a valgrind output and reopen this issue? Thanks in advance.