david at rothlis.net
Wed Dec 19 12:25:06 PST 2012
On 19 Dec 2012, at 19:37, Stirling Westrup wrote:
> I am currently writing a very CPU-intensive gstreamer app that handles
> 4K video which get post-processed into multiple video output streams.
> During profiling it appears that very limited use is being made of the
> multiple processors in my server. I would love to be able to have my
> output stream tasks distributed among the CPU’s on the server. Is
> there currently any way to do something like that?
That depends on what elements you are using. For example I use the
OpenCV plugin's "templatematch" element, which happily distributes work
across all available processors -- it keeps all 8 of my cores happily
occupied. But that's the way the element is implemented (or in this
case, the OpenCV library wrapped by the templatematch element); it
doesn't happen automatically.
If your pipeline uses tees (branches), then if you put a queue element
in each branch you get a separate thread per queue. I'm not sure if
putting extra queue elements in a serial pipeline will give you a
separate thread for the elements after each queue -- try it! :-)
More information about the gstreamer-devel