videomixer handling of the SEGMENT events?

Nicolas Dufresne nicolas at ndufresne.ca
Tue Jun 20 16:25:39 UTC 2017


Le mercredi 14 juin 2017 à 13:44 +0300, Vladislavs Zaluckis a écrit :
> Hi,
> 
> I am trying to use videomixer to do overlay graphics over the "main"
> video. My "main" pipeline is changed dynamically to implement gapless
> playout. My idea was to overlay a semi-transparent static graphic
> image over the video stream.
> 
> The problem I am having now is that videomixer does not forward my
> original SEGMENT events, but sends its own segment instead, which
> starts from 0. 

If you switch to compositor instead, you will be able to configure the
"start-time-selection", though I doubt the segment will be forwarded
as-is. The reason is that you can't figure-out from which of the input
pad you should keep the segment. I often use start-time-selection=first 
to prevent the compositor from generating background frames initially.

You may also want to look at other ways to overlay your content if it's
static. Elements like gdkpixbufoverlay and rsvgoverlay would preserve
your segment.

> I use segments (seek) to implement in- and out-markers in the files
> for playout. As soon as I added the videomixer element (even without
> connecting other sinks, just the "main" video), my video stitching no
> longer works. Basically it says that all frames are from the past for
> 2nd and all the rest files after the 1st. The 1st file plays
> normally. So the questions are:

Segment seeking is probably not implemented in either videomixer or
compositor. If you look at GES, they hide the seeks upstream the mixer,
so they probably didn't need that feature.

> how should I handle the situation when I have different segments
> incoming on different sinks of videomixer, say one sink has a
> permanent segment of just 0..-1 and another sink has the segment
> changing time after time (1 seek on each new file)?
> is there something wrong with the way I currently construct and
> operate the whole pipeline maybe?

GstAggregator, what compositor is based on, will normalize all
timestamp using the running-time. This way, the input segment can be
dropped.

> 
> I am attaching the pipeline snapshot at the point where two files are
> connected: one is playing and another is prepared and waiting on the
> concat. I am also attaching the debug log. It is not totally
> complete, the following filters were used:
> GST_DEBUG=*:5,APP:5,GST_MEMORY:3,libav:3,structure:3,GST_REFCOUNTING:
> 3,GST_REGISTRY:3
> 
> log file:
> https://drive.google.com/open?id=0Bz5JvqnApX6WUXhsODBKZC1ZbXc
> pipeline dump:
> https://drive.google.com/open?id=0Bz5JvqnApX6WcjdHYjZVMlJVVWM
> 
> 
> Will appreciate any advice. Thanks!
> 
> --
> Regards,
> Vlad
> 
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170620/a596423b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170620/a596423b/attachment.sig>


More information about the gstreamer-devel mailing list