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