GNOME Bugzilla – Bug 741584
funnel: needs to notify taglist when tag event is received
Last modified: 2015-03-11 23:37:08 UTC
I think funnel element can be a combiner in playbin such as input-selector to support multiple sinks with streamiddemux. In this case, funnel needs to be handling taglist likes input-selector. As I said before, my pipeline is likes below for supporting multiple sinks. 1. multiple internal subtitle. / input-selector - audiosink uridecodebin - input-selector - videosink `- funnel - streamiddemux - appsink1 `- appsink2 `- appsink3 `- appsink4 2. multiple video streams such as 3d dual stream. / input-selector - audiosink uridecodebin - funnel - streamiddemux - videosink1 `- videosink2 `- funnel - streamiddemux - appsink1 `- appsink2
Created attachment 292793 [details] [review] funnel: need to notify taglist when tag event is received Dear All. I attach my patch for this. Please review and test it.
Review of attachment 292793 [details] [review]: ::: plugins/elements/gstfunnel.c @@ +101,3 @@ + g_object_class_install_property (gobject_class, PROP_PAD_TAGS, + g_param_spec_boxed ("tags", "Tags", + "The currently active tags on the pad", GST_TYPE_TAG_LIST, Why add the property? You can always retrieve the current taglist using gst_pad_get_stick_event()
Also note that there are "global" tags and "stream" tags, so one would need at two separate properties then (but see what Olivier said).
Actually, I'm not sure merging taglists is the right behaviour. I'd just push the tag event before switching each time, if each sink pad has a different set of tags, it means switching sets before pushing the buffer, just like we do for caps.
Yes, that's more correct. Handle it like caps and all other sticky events (why do we distinguish between caps and others anyway?), and always send them on switching. If merging is required, upstream elements of funnel should've done it already.
funnel already handles all sticky events in the chain function if the pad changes. So is there anything left to be done here? It seems to do the right thing.
Dear All. Thanks for your comments. And Sorry for late reply. I was a little bit busy for my project. Let me explain it again. In advance, I would like to say that I also mean not a bug. I think if funnel can locate instead of input-selector in playbin. As you know, input-selector notify signal for tag when tag event is received and playbin emit [video|audio|text]-tags-changed signal. Then upper layer in such player can retrieve the tag using get-[video|audio|text]-tags signal action. Just I want to apply this feature to funnel element.