access to frames from common video feed from different applications

I have UDP MPEG-2 TS streams coming from a satellite TV receiver connected to an Ubuntu box, I can access each frame from each stream (corresponding to different channels) using ffmpeg, no problem.

I would like to perform various video processing operations on a stream, e.g. Task A, Task B, etc. These could be face tracking, commercial detection etc. I want to separate code that accesses each frame and code that processes each frame, that is, I want Task A, Task B to be separate applications, that can be started & stopped independently.

What would be the best way to share each frame read by the frame reader with other (number may increase) applications that process these, similar to the publish/subscriber design pattern? Is pub/sub suited for this task? I thought that was more applicable to message type passing. Here, the data rate is high (30 frames/sec with 720x480 size) and near real-time processing performance is desired.

Thanks a lot,


13.10.2009 16:09:37
Would using something like Boost.Asio be a wise choice?
recipriversexclusion 13.10.2009 16:41:09

My wording of the problem was dense. I reworded my problem and got good answers to this problem at a different question on SO.

23.05.2017 11:55:41