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 539042 - input-selector emit multiple segments with select-all=True
input-selector emit multiple segments with select-all=True
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 614306
 
 
Reported: 2008-06-18 22:33 UTC by Olivier Crête
Modified: 2011-01-05 16:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Olivier Crête 2008-06-18 22:33:04 UTC
I'm testing switching video codecs live with farsight2, whenever a new video codec appears, a new pad comes out of fs2 and I like it to an input-selector with "select-all" set to True (thats then connected to an xvimagesink).

It fails because every time a new pad is connected, it also sends a NEWSEGMENT event that input-selector forwards almost blindly and that the sink then accumulates.

I guess that input-selector should do much more complicated magic with the segments and combine them in a smart way and check if an update should be sent instead of a newsegment (or maybe nothing if they match).. Maybe even in the case of select-all, it should just retimestamp every buffer to the running time and only send a [0,-1] segment out or something...

Here is a small demo program:

import pygst
pygst.require('0.10')
import gst,time

pipeline = gst.parse_launch ("videotestsrc is-live=1 ! input-selector select-all=1 name=a ! xvimagesink")
pipeline.set_state(gst.STATE_PLAYING);
time.sleep(5)

vts = gst.element_factory_make("videotestsrc")
vts.set_property("pattern", 1)
pipeline.add(vts)
vts.link(pipeline.get_by_name("a"))
pipeline.set_state(gst.STATE_PLAYING);
print "added second source"

time.sleep(10)
pipeline.set_state(gst.STATE_NULL);
Comment 1 Tim-Philipp Müller 2010-12-31 02:07:00 UTC
Is this still a problem?
Comment 2 Edward Hervey 2011-01-05 10:11:38 UTC
demoting to major.
Comment 3 Tim-Philipp Müller 2011-01-05 16:20:02 UTC
commit c57934d7bfa78fcffc9f1cb591e0c59829a21070
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Wed Jan 5 15:53:28 2011 +0000

    inputselector: remove "select-all" property
    
    select-all mode is a bit broken (e.g. newsegment event
    handling), so remove that for now. The funnel element
    in farsight provides similar functionality.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=539042
    https://bugzilla.gnome.org/show_bug.cgi?id=638381