Sharing timestamps with external applications

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Sharing timestamps with external applications

Ryan Talbot
Hi everyone,

My application requires (potentially mutliple) external applications be able to manipulate a pipeline (possibly multiple pipelines).  They also need  to be able to get timestamp and sequence information from video and audio passing through those pipelines.  I had originally planned on just using a tee and an appsink, until the design scaled beyond one application needing access to the video images in real time... and also it would be nice to avoid the buffer copy in the tee :). So, I thought I would write a plugin that acts as a pass-through for buffers, pulls out the buffer timestamp and sequence information, and makes it available over some form of IPC (probably a socket).

I ran the gst-element-maker script using basetransform as the template, although I'm not sure that was the best choice.  I did not want to use video/audiofilter, since this will likely need to be applied to both.  Using simply 'element' as the base caused the automated tests to fail.

Would there be a better template to use?  Is there a better way to share this information with other applications?

Thanks in advance,
Ryan Talbot

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Sharing timestamps with external applications

Arjen Veenhuizen
You could have a look at gst-zeromq (they are not mine but use them from time to time). Although the plugins are far from finished, it does exactly what you want. This will allow you to share data between pipelines on the same machine or even different machines.
Reply | Threaded
Open this post in threaded view
|

RE: Sharing timestamps with external applications

Ryan Talbot
Thanks for the link!  That might be more heavyweight than what I need, though (especially given the notes about having to memcpy buffers... definitely trying to avoid that as much as possible!).  Right now, I've got a very simple plugin derived from GstBaseTransform that works in passthrough mode, using the *_transform_ip() function to sniff out timestamps and offsets and write them out to a FIFO.  I'm debating how badly we really need multiple simultaneous subscribers to the information... because if it's 1:1 I'll probably stick with a non-blocking named pipe and forgo the extra hassle of a UNIX socket.
________________________________________
From: gstreamer-devel [[hidden email]] on behalf of Arjen Veenhuizen [[hidden email]]
Sent: Saturday, April 16, 2016 5:09 AM
To: [hidden email]
Subject: Re: Sharing timestamps with external applications

You could have a look at  gst-zeromq <https://github.com/mjhowell/gst-zeromq>
(they are not mine but use them from time to time). Although the plugins are
far from finished, it does exactly what you want. This will allow you to
share data between pipelines on the same machine or even different machines.



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Sharing-timestamps-with-external-applications-tp4676929p4676943.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Sharing timestamps with external applications

Sebastian Dröge-3
In reply to this post by Arjen Veenhuizen
On Sa, 2016-04-16 at 02:09 -0700, Arjen Veenhuizen wrote:
> You could have a look at  gst-zeromq   
> (they are not mine but use them from time to time). Although the plugins are
> far from finished, it does exactly what you want. This will allow you to
> share data between pipelines on the same machine or even different machines.

That looks certainly useful, and like something that would also be good
to have merged into one of the GStreamer plugin modules. Would you like
to propose merging it? I see that you have some design questions on
your TODO list there, feel free to ask about those here too

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment