16.2. Scheduling in GStreamer

Each element in the GStreamer pipeline decides how it is going to be scheduled. Elements can choose to be scheduled push-based or pull-based. If elements support random access to data, such as file sources, then elements downstream in the pipeline can ask to schedule the random access elements in pull-based mode. Data is pulled from upstream and pushed downstream. If pull-mode is not supported, the element can decide to operate in push-mode.

In practice, most elements in GStreamer, such as decoders, encoders, etc. only support push-based scheduling, which means that in practice, GStreamer uses a push-based scheduling model.