## GstPushSrc GstPushSrc — Base class for push based source elements |

## Synopsis

    #include <gst/base/gstpushsrc.h>

    struct              GstPushSrc;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc

## Description

This class is mostly useful for elements that cannot do random access, or at least very slowly. The source usually prefers to push out a fixed size buffer.

Subclasses usually operate in a format that is different from the default GST_FORMAT_BYTES format of GstBaseSrc.

Classes extending this base class will usually be scheduled in a push based mode. If the peer accepts to operate without offsets and within the limits of the allowed block size, this class can operate in getrange based mode automatically. To make this possible, the subclass should override the ::check_get_range method.

The subclass should extend the methods from the baseclass in addition to the ::create method.

Seeking, flushing, scheduling and sync is all handled by this base class.

Last reviewed on 2006-07-04 (0.10.9)

## Details

### struct GstPushSrc

    struct GstPushSrc;

The opaque GstPushSrc data structure.

## See Also

GstBaseSrc