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 532944 - collectpads: Has no special support for live streams
collectpads: Has no special support for live streams
Status: RESOLVED DUPLICATE of bug 739010
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-05-13 12:11 UTC by Sebastian Dröge (slomo)
Modified: 2015-01-01 17:37 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-05-13 12:11:42 UTC
Hi,
GstCollectPads currently has no special support for live streams.

With live streams it can easily happen, that you don't get any new buffers for a longer time. When using GstCollectPads this means, that the complete element will stall, no matter if other pads still get buffers or not, until the single live stream that has no new buffers finally gets one again.
For this reason farsight currently has a liveadder element.

A solution for this would be a timeout when collecting buffers, but this would probably be an ABI incompatible change (elements are expecting one non-NULL buffer for every pad).
Comment 1 Olivier Crête 2008-05-13 13:54:40 UTC
Imho, GstCollectPads are not the right way to go for live, discontinuous streams. Because they completely ignore timestamps, and we have no guarantee that the first buffer to arrive on each pad matches exactly the buffers coming from the other pads. I'm pretty sure we could have a baseclass for smart/live mixer/muxer elements that could take parts of the GstCollectPads, but have a queue on each pad and then wait for some time or wait until all there is data on all pads for non-synced pipelines. And hide all the magic and provide the the buffers to mix/mux to some function. Or maybe do like the liveadder (which does the mixing in the chain function then keeps the mixed result in a queue to wait for more stuff to come in).
Comment 2 Wim Taymans 2008-10-13 13:58:58 UTC
A timeout on pad collect could work but then we also need buffering on the pads that do receive data or else we would block them.

It's probably, as said in Comment #1 not a good idea to use collectpads for this use case.
Comment 3 Sebastian Dröge (slomo) 2011-05-19 07:28:47 UTC
IMHO all these "muxing" scenarios should somehow be solved by a single element (and not by having something like adder and liveadder). For this collectpads has to be improved
Comment 4 Tim-Philipp Müller 2015-01-01 17:37:26 UTC

*** This bug has been marked as a duplicate of bug 739010 ***