Stream-Server Architecture

Stream-Server can run in any VM on the target. Plugins are used to get an EGLStream handle by attaching a consumer or a producer to it using sockets. The plugins then act as hooks and are matched to their partner based on the configuration provided. The configuration can be modified either via command line arguments or by a JSON file.

There are two types of plugins:

  1. Input Plugin – This type of plugin is used to connect to an EGLStream producer app. The producer app uses UNIX domain or INET sockets to connect with the respective input plugin. Two important plugins in this category are CrossProcInput and CrossPartInput, which are used to get cross-process and cross-partition EGLStreams from the external producer app.
  2. Output Plugin –This type of plugin is used to attach a consumer to an EGLStream coming from an external application via input plugin. This communication is again achieved using UNIX domain or INET sockets. Based on the functionality needed, there are two broad categories of output plugins. The first category is display-based output plugins, which display stream frames on the monitor. The second category is forward- output plugins, which serve as an intermediary for an external EGLStream consumer app.

The following image shows Stream-Server running with different external producers and consumers.

media/image3.jpg