Pipeline elements

Pipelines in the lag processing stage can be constructed from any of a number of elements. The only restriction is that the pipeline work in the backend system framework as described previously. What this means is that the pipeline must receive lag sets and application-specific events on its input socket. The bare minimum requirements can be met with a pipeline constructed with one specific element as its source element, which is therefore regarded as a mandatory element in all lag processing stage pipelines.

[Note]Note

There is no pipeline element that sends messages to the input stage; that task is handled by the lag processing pipeline application. This scheme ensures that the use of the pipeline message bus by the application is not determined by any element in the pipeline, but remains an application-specific feature. Nevertheless, as described in the section called “Message passing”, other uses of the message bus within the pipeline are also possible.

Mandatory elements

At present, there is only one mandatory element in all lag processing stage pipelines. There is a possibility that other elements may be introduced in the future that will also be mandatory (most likely a standard sink element).

wcbe_lagset_src

This is the standard source element in a lag processing stage pipeline. It is able to handle all incoming messages on a socket from the input stage (i.e., receiving lag sets, and events) according to the protocol used by the input stage.

Lag sets are associated with a particular correlator product as specified by the current configuration. As described in the section called “Schema”, correlator products are identified by a unique string given by the configuration. However, as elements likely will often refer to the particular product to which a lag set belongs, lag sets carry an equivalent integer identifier that exists solely within a pipeline for faster indexing operations on the lag set product identification. The wcbe_lagset_src element generates this integer for use throughout the rest of the pipeline.

[Note]Note

The generation of integer identifiers is the only modification made by the element to the lag sets as received from the input stage. The input stage also uses similar identifiers, which get transmitted with the lag set; however, because the identifiers as received by the lag processing stage were generated within another process, they must be regenerated within the receiving process to ensure uniqueness. These identifiers are only to be used internally by a pipeline process, and should never be used in any way by other processes.

Events received by this element are simply recreated as GStreamer events, and passed downstream. Currently, only the GST_EVENT_EOS, GST_EVENT_FLUSH_START, GST_EVENT_FLUSH_STOP, and GST_EVENT_NEW_SEGMENT events are passed downstream by this element.

The following figure is derived from the output of the gst-inspect wcbe_lagset_src command, which provides information on this GStreamer element.

Optional elements

There are no other backend-specific elements yet available or designed for the lag processing stage. A short list of the functions to be provided by individual pipeline elements to be developed follows.

DV normalization
Fourier transform
Van Vleck correction
Integration
BDF output