gstbasertpdepayload

gstbasertpdepayload — Base class for RTP depayloader

Synopsis


#include <gst/rtp/gstbasertpdepayload.h>

                    GstBaseRTPDepayload;
                    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);

Object Hierarchy

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

Properties

  "queue-delay"              guint                 : Read / Write

Description

Provides a base class for RTP depayloaders

Details

GstBaseRTPDepayload

typedef struct _GstBaseRTPDepayload GstBaseRTPDepayload;


GstBaseRTPDepayloadClass

typedef struct {
  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);
} GstBaseRTPDepayloadClass;


GST_BASE_RTP_DEPAYLOAD_SINKPAD()

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

depayload :

GST_BASE_RTP_DEPAYLOAD_SRCPAD()

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

depayload :

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.

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 apply timestamp on the outgoing buffer, using the configured clock_rate to convert the timestamp to a valid GStreamer clock time.

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

Property Details

The "queue-delay" property

  "queue-delay"              guint                 : Read / Write

Amount of ms to queue/buffer, deprecated.

Default value: 0