GstElement The most important object in GStreamer for the application programmer is the GstElement object. What is a GstElement The GstElement is the basic building block for the media pipeline. All the different components you are going to use are derived from this GstElement. This means that a lot of functions you are going to use operate on this object. We will first describe the three most important types of elements that you are going to use. They are the Source, Filter and Sink elements. You will also see that those elements have pads. These are the elements connections with the 'outside' world. GStreamer source elements (<classname>GstSrc</classname>) This element will generate data that will be used by the pipeline. It is typically a file or an audio source. Below you see how we will visualize the GstSrc element. We always draw a src pad to the right of the element.
Visualisation of a <classname>GstSrc</classname> element
Source elements do not accept data, they only generate data. You can see this in the figure because it only has a src pad. A src pad can only generate buffers.
GStreamer filter elements (<classname>GstFilter</classname>) Filter elements both have an input and an output pad. They operate on data they receive in the sink pad and send the result to the src pad. Examples of a filter element might include: an MPEG decoder, volume filter,... Filters may also contain any number of input pads and output pads. For example, a video mixer might have to input pads (the images of the two different video streams) and one output pad.
Visualisation of a <classname>GstFilter</classname> element
The above figure shows the visualisation of a filter element. This element has one sink pad (input) and one src (output) pad. Sink pads are drawn on the left of the element.
Visualisation of a <classname>GstFilter</classname> element with more than one output pad
The above figure shows the visualisation of a filter element with more than one output pad. An example of such a filter is the AVI splitter. This element will parse the input data and extracts the audio and video data. Most of these filters dynamically send out a signal when a new pad is created so that the application programmer can connect an arbitrary element to the newly created pad.
GStreamer sink elements (<classname>GstSink</classname>) This element accepts data but will not generate any new data. A sink element is typically a file on disk, a soundcard, a display,... It is presented as below:
Visualisation of a <classname>GstSink</classname> element