## gstbasertpdepayload gstbasertpdepayload — Base class for RTP depayloader |

## Synopsis

    #include <gst/rtp/gstbasertpdepayload.h>

    struct              GstBaseRTPDepayload;
    struct              GstBaseRTPDepayloadClass;
    #define             GST_BASE_RTP_DEPAYLOAD_SINKPAD      (depayload)
    #define             GST_BASE_RTP_DEPAYLOAD_SRCPAD       (depayload)
    GstFlowReturn       gst_base_rtp_depayload_push         (GstBaseRTPDepayload *filter,
                                                             GstBuffer *out_buf);
    GstFlowReturn       gst_base_rtp_depayload_push_ts      (GstBaseRTPDepayload *filter,
                                                             guint32 timestamp,
                                                             GstBuffer *out_buf);
    GstFlowReturn       gst_base_rtp_depayload_push_list    (GstBaseRTPDepayload *filter,
                                                             GstBufferList *out_list);

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseRTPDepayload

## Properties

      "queue-delay"              guint                 : Read / Write

## Description

Provides a base class for RTP depayloaders

## Details

### struct GstBaseRTPDepayload

    struct GstBaseRTPDepayload;

### struct GstBaseRTPDepayloadClass

    struct GstBaseRTPDepayloadClass {
      GstElementClass parent_class;

      /* virtuals, inform the subclass of the caps. */
      gboolean (*set_caps) (GstBaseRTPDepayload *filter, GstCaps *caps);

      /* non-pure function, default implementation in base class
       * this does buffering, reordering and dropping, deprecated */
      GstFlowReturn (*add_to_queue) (GstBaseRTPDepayload *filter, GstBuffer *in);

      /* pure virtual function, child must use this to process incoming
       * rtp packets. If the child returns a buffer without a valid timestamp,
       * the timestamp of @in will be applied to the result buffer and the
       * buffer will be pushed. If this function returns %NULL, nothing is
       * pushed.  */
      GstBuffer * (*process) (GstBaseRTPDepayload *base, GstBuffer *in);

      /* non-pure function used to convert from RTP timestamp to GST timestamp
       * this function is used by the child class before gst_pad_pushing */
      void (*set_gst_timestamp) (GstBaseRTPDepayload *filter, guint32 timestamp, GstBuffer *buf);

      /* non-pure function used to to signal the depayloader about packet loss. the
       * timestamp and duration are the estimated values of the lost packet.
       * The default implementation of this message pushes a segment update. */
      gboolean (*packet_lost) (GstBaseRTPDepayload *filter, GstEvent *event);

      /* the default implementation does the default actions for events but
       * implementation can override.
       * Since: 0.10.32   */
      gboolean (*handle_event) (GstBaseRTPDepayload * filter, GstEvent * event);
    };

Base class for audio RTP payloader.

GstElementClass `parent_class`; | the parent class
`set_caps` () | configure the depayloader
`add_to_queue` () | (deprecated)
`process` () | process incoming rtp packets
`set_gst_timestamp` () | convert from RTP timestamp to GST timestamp
`packet_lost` () | signal the depayloader about packet loss
`handle_event` () | custom event handling

### GST_BASE_RTP_DEPAYLOAD_SINKPAD()

    #define GST_BASE_RTP_DEPAYLOAD_SINKPAD(depayload) (GST_BASE_RTP_DEPAYLOAD (depayload)->sinkpad)

### GST_BASE_RTP_DEPAYLOAD_SRCPAD()

    #define GST_BASE_RTP_DEPAYLOAD_SRCPAD(depayload)  (GST_BASE_RTP_DEPAYLOAD (depayload)->srcpad)

### gst_base_rtp_depayload_push ()

    GstFlowReturn       gst_base_rtp_depayload_push         (GstBaseRTPDepayload *filter,
                                                             GstBuffer *out_buf);

Push `out_buf` to the peer of `filter`. This function takes ownership of `out_buf`.

Unlike `gst_base_rtp_depayload_push_ts()`, this function will not apply any timestamp on the outgoing buffer. Subclasses should therefore timestamp outgoing buffers themselves.

`filter` : | a GstBaseRTPDepayload
`out_buf` : | a GstBuffer
Returns : | a GstFlowReturn.

### gst_base_rtp_depayload_push_ts ()

    GstFlowReturn       gst_base_rtp_depayload_push_ts      (GstBaseRTPDepayload *filter,
                                                             guint32 timestamp,
                                                             GstBuffer *out_buf);

Push `out_buf` to the peer of `filter`. This function takes ownership of `out_buf`.

Unlike `gst_base_rtp_depayload_push()`, this function will by default apply the last incomming timestamp on the outgoing buffer when it didn't have a timestamp already. The set_get_timestamp vmethod can be overwritten to change this behaviour (and take, for example, `timestamp` into account).

`filter` : | a GstBaseRTPDepayload
`timestamp` : | an RTP timestamp to apply
`out_buf` : | a GstBuffer
Returns : | a GstFlowReturn.

### gst_base_rtp_depayload_push_list ()

    GstFlowReturn       gst_base_rtp_depayload_push_list    (GstBaseRTPDepayload *filter,
                                                             GstBufferList *out_list);

Push `out_list` to the peer of `filter`. This function takes ownership of `out_list`.

`filter` : | a GstBaseRTPDepayload
`out_list` : | a GstBufferList
Returns : | a GstFlowReturn.

Since 0.10.32

## Property Details

### The `"queue-delay"` property

      "queue-delay"              guint                 : Read / Write

Amount of ms to queue/buffer, deprecated.

Default value: 0