GStreamer - pipeline design - multi-threading

Bogdan Pavkovic bogprs at gmail.com
Tue May 30 08:49:59 UTC 2017


Dear all,

Here is the diagram for your convenience.
I hope there is someone that can answer at least some subset of my
questions.

Thanks again in advance.

Best,
Bogdan
​

On Fri, May 26, 2017 at 1:15 PM, Bogdan Pavkovic <bogprs at gmail.com> wrote:

> Dear all,
>
> I am a newby to GStremer Community
> but I managed to thoroughly go through ALL offered tutorials.
>
> GOAL: I need to design a performance-critical pipeline and create a couple
> of new filter plugins.
> Any help will be appreciated.
>
> General pipeline is divided in 3 bins: input, core, and output.
> For the input part we have already completed 4 options: RTP client
> (existing plugin), MJPEG, V2L, and FILE (existing).
> For the output part we use Wayland.
>
> Core part is processing which roughly is done in 3 stages:
> pre-processing, heavy processing, and some sort of Kalman filtering.
> Q1: My idea is to make 3 plugins that will form a larger bin. Is this the
> right way to go?
> Pre-processing plug-in need to have on-request sink pads since number of
> input video streams can vary between 1 and 4.
> Source (output) pads (on request) will be created and linked to
> consecutive elements on the fly as they appear.
> Q2: Do all consecutive elements in Core bin need to have on request pads
> due to non-deterministic number of input videos?
>
> Heavy processing plug-in needs to do heavy lifting and we intend to use
> multi-threading on 4 available cores.
> Q2: Do we need to use 2 queue elements before each of the pads of this
> element to separate processing of each video stream?
> Q3: I understood there are tasks that can do further multi-threading. Can
> we use them behind a queue element?
> Q4: If we use 4 tasks, is there a way to signal and sync all of them? i.e.
> Do we get a signal  when all 4 task outputs are ready?
> Q5: How can we configure a task to target a specific core?
>
> Finaly, Kalman plugin is not calculation intensive and can handle both
> streams.
> Q6: Can we somehow undo the queue element? Does it make sense?
>
> I can provide a diagram of the proposed pipeline if needed to clarify
> things.
>
> Many thanks in advance.
>
> Best regards,
> Bogdan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170530/eccc531a/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: GStreamer_Pipeline_Architecture.png
Type: image/png
Size: 308485 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170530/eccc531a/attachment-0001.png>


More information about the gstreamer-devel mailing list