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 696915 - decodebin: get_sticky event STREAM_START fails on newly-exposed pad
decodebin: get_sticky event STREAM_START fails on newly-exposed pad
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal minor
: 1.1.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-03-30 16:00 UTC by Christian Fredrik Kalager Schaller
Modified: 2013-04-04 13:11 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Fredrik Kalager Schaller 2013-03-30 16:00:12 UTC
I am trying to get hold of the incoming streamid from uridecodebin using the get_sticky_event API call, unfortunately it just returns 'NONE'.

stick=src_pad.get_sticky_event(Gst.EventType.STREAM_START, 0)
                       print(stick)
                       while x < len(self.audiodata):
                           if stick==self.audiodata[x]['streamid']:
                               #print(str(pad)+" - "+"streamid from parse_stream_start "+ str(self.probestreamid))
                               sinkpad = self.encodebin.emit("request-profile-pad", self.audioprofilenames[x])
                               src_pad.link(sinkpad)
                       x=x+1
Comment 1 Sebastian Dröge (slomo) 2013-04-04 09:24:46 UTC
For this we need
a) decodebin, uridecodebin, etc. to push all sticky events downstream already from the pad probes before exposing the pad
b) ghostpad in the src case to copy all sticky events of the target to the proxy pad and the ghostpad immediately when calling gst_ghost_pad_set_target(). But *not* forward them downstream, only copy them. There's currently no API for that in GstPad.
Comment 2 Wim Taymans 2013-04-04 13:06:30 UTC
I think this should do it, reopen if it still fails. There is also some debug now in decodebin to list the sticky events before exposing the pad in case something is wrong.

commit 92b77c5aa4536dfa5f1eff0c729560fbf0ba2c52
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Apr 4 15:00:52 2013 +0200

    decodebin2: forward all sticky events to decodepad
    
    Forward all sticky events to the decodepad before exposing the pads. This makes
    sure all sticky events are on the exposed pad.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696915