streamgrouper
streamgrouper takes any number of streams in the sinkpads and patches the STREAM_START events so that they all belong to the same group-id.
This is useful for constructing simple pipelines where different sources push buffers into an element that contains a streamsynchronizer element, like playsink.
Notice that because of this group-id merging, using streamgrouper is incompatible with gapless playback. However, this is not a problem, since streamgrouper is currently intended only for use cases in which only one stream group will be played.
Example
This is a simple pipeline where, because the audio and video streams come from unrelated source elements, they end up with different group-ids and therefore get stuck forever waiting inside the streamsynchronizer inside playsink, and never play:
# Will get stuck! The streams from audiotestsrc and videotestsrc don't
# share a group-id.
gst-launch-1.0 \
playsink name=myplaysink \
audiotestsrc ! myplaysink.audio_sink \
videotestsrc ! myplaysink.video_sink
By adding streamgrouper to the pipeline, the streams are become part of the same group and playback is possible.
gst-launch-1.0 \
playsink name=myplaysink \
streamgrouper name=grouper \
audiotestsrc ! grouper.sink_0 grouper.src_0 ! myplaysink.audio_sink \
videotestsrc ! grouper.sink_1 grouper.src_1 ! myplaysink.video_sink
Hierarchy
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstElement ╰──streamgrouper
Factory details
Authors: – Alicia Boya García
Classification: – Generic
Rank – none
Plugin – streamgrouper
Package – gst-plugin-streamgrouper
Pad Templates
The results of the search are