gstbasertppayload

gstbasertppayload — Base class for RTP payloader

Synopsis


#include <gst/rtp/gstbasertppayload.h>

                    GstBaseRTPPayload;
                    GstBaseRTPPayloadClass;
#define             GST_BASE_RTP_PAYLOAD_MTU            (payload)
#define             GST_BASE_RTP_PAYLOAD_PT             (payload)
#define             GST_BASE_RTP_PAYLOAD_SINKPAD        (payload)
#define             GST_BASE_RTP_PAYLOAD_SRCPAD         (payload)
gboolean            gst_basertppayload_is_filled        (GstBaseRTPPayload *payload,
                                                         guint size,
                                                         GstClockTime duration);
GstFlowReturn       gst_basertppayload_push             (GstBaseRTPPayload *payload,
                                                         GstBuffer *buffer);
GstFlowReturn       gst_basertppayload_push_list        (GstBaseRTPPayload *payload,
                                                         GstBufferList *list);
void                gst_basertppayload_set_options      (GstBaseRTPPayload *payload,
                                                         gchar *media,
                                                         gboolean dynamic,
                                                         gchar *encoding_name,
                                                         guint32 clock_rate);
gboolean            gst_basertppayload_set_outcaps      (GstBaseRTPPayload *payload,
                                                         gchar *fieldname,
                                                         ...);

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstBaseRTPPayload
                     +----GstBaseRTPAudioPayload

Properties

  "max-ptime"                gint64                : Read / Write
  "min-ptime"                gint64                : Read / Write
  "mtu"                      guint                 : Read / Write
  "perfect-rtptime"          gboolean              : Read / Write
  "pt"                       guint                 : Read / Write
  "seqnum"                   guint                 : Read
  "seqnum-offset"            gint                  : Read / Write
  "ssrc"                     guint                 : Read / Write
  "timestamp"                guint                 : Read
  "timestamp-offset"         guint                 : Read / Write

Description

Provides a base class for RTP payloaders

Details

GstBaseRTPPayload

typedef struct _GstBaseRTPPayload GstBaseRTPPayload;


GstBaseRTPPayloadClass

typedef struct {
  GstElementClass parent_class;

  /* receive caps on the sink pad, configure the payloader. */
  gboolean      (*set_caps)             (GstBaseRTPPayload *payload, GstCaps *caps);
  /* handle a buffer, perform 0 or more gst_basertppayload_push() on
   * the RTP buffers. This function takes ownership of the buffer. */
  GstFlowReturn (*handle_buffer)        (GstBaseRTPPayload *payload,
                                         GstBuffer *buffer);
  gboolean      (*handle_event)         (GstPad * pad, GstEvent * event);
  GstCaps *     (*get_caps)             (GstBaseRTPPayload *payload, GstPad * pad);
} GstBaseRTPPayloadClass;


GST_BASE_RTP_PAYLOAD_MTU()

#define GST_BASE_RTP_PAYLOAD_MTU(payload) (GST_BASE_RTP_PAYLOAD (payload)->mtu)

Get access to the configured MTU of payload.

payload : a GstBaseRTPPayload

GST_BASE_RTP_PAYLOAD_PT()

#define GST_BASE_RTP_PAYLOAD_PT(payload)  (GST_BASE_RTP_PAYLOAD (payload)->pt)

Get access to the configured payload type of payload.

payload : a GstBaseRTPPayload

GST_BASE_RTP_PAYLOAD_SINKPAD()

#define GST_BASE_RTP_PAYLOAD_SINKPAD(payload) (GST_BASE_RTP_PAYLOAD (payload)->sinkpad)

Get access to the sinkpad of payload.

payload : a GstBaseRTPPayload

GST_BASE_RTP_PAYLOAD_SRCPAD()

#define GST_BASE_RTP_PAYLOAD_SRCPAD(payload)  (GST_BASE_RTP_PAYLOAD (payload)->srcpad)

Get access to the srcpad of payload.

payload : a GstBaseRTPPayload

gst_basertppayload_is_filled ()

gboolean            gst_basertppayload_is_filled        (GstBaseRTPPayload *payload,
                                                         guint size,
                                                         GstClockTime duration);

Check if the packet with size and duration would exceed the configured maximum size.

payload : a GstBaseRTPPayload
size : the size of the packet
duration : the duration of the packet
Returns : TRUE if the packet of size and duration would exceed the configured MTU or max_ptime.

gst_basertppayload_push ()

GstFlowReturn       gst_basertppayload_push             (GstBaseRTPPayload *payload,
                                                         GstBuffer *buffer);

Push buffer to the peer element of the payloader. The SSRC, payload type, seqnum and timestamp of the RTP buffer will be updated first.

This function takes ownership of buffer.

payload : a GstBaseRTPPayload
buffer : a GstBuffer
Returns : a GstFlowReturn.

gst_basertppayload_push_list ()

GstFlowReturn       gst_basertppayload_push_list        (GstBaseRTPPayload *payload,
                                                         GstBufferList *list);

Push list to the peer element of the payloader. The SSRC, payload type, seqnum and timestamp of the RTP buffer will be updated first.

This function takes ownership of list.

payload : a GstBaseRTPPayload
list : a GstBufferList
Returns : a GstFlowReturn.

Since 0.10.24


gst_basertppayload_set_options ()

void                gst_basertppayload_set_options      (GstBaseRTPPayload *payload,
                                                         gchar *media,
                                                         gboolean dynamic,
                                                         gchar *encoding_name,
                                                         guint32 clock_rate);

Set the rtp options of the payloader. These options will be set in the caps of the payloader. Subclasses must call this method before calling gst_basertppayload_push() or gst_basertppayload_set_outcaps().

payload : a GstBaseRTPPayload
media : the media type (typically "audio" or "video")
dynamic : if the payload type is dynamic
encoding_name : the encoding name
clock_rate : the clock rate of the media

gst_basertppayload_set_outcaps ()

gboolean            gst_basertppayload_set_outcaps      (GstBaseRTPPayload *payload,
                                                         gchar *fieldname,
                                                         ...);

Configure the output caps with the optional parameters.

Variable arguments should be in the form field name, field type (as a GType), value(s). The last variable argument should be NULL.

payload : a GstBaseRTPPayload
fieldname : the first field name or NULL
... : field values
Returns : TRUE if the caps could be set.

Property Details

The "max-ptime" property

  "max-ptime"                gint64                : Read / Write

Maximum duration of the packet data in ns (-1 = unlimited up to MTU).

Allowed values: >= -1

Default value: -1


The "min-ptime" property

  "min-ptime"                gint64                : Read / Write

Minimum duration of the packet data in ns (can't go above MTU).

Allowed values: >= 0

Default value: 0


The "mtu" property

  "mtu"                      guint                 : Read / Write

Maximum size of one packet.

Allowed values: >= 28

Default value: 1400


The "perfect-rtptime" property

  "perfect-rtptime"          gboolean              : Read / Write

Generate perfect RTP timestamps when possible.

Default value: TRUE


The "pt" property

  "pt"                       guint                 : Read / Write

The payload type of the packets.

Allowed values: <= 128

Default value: 96


The "seqnum" property

  "seqnum"                   guint                 : Read

The RTP sequence number of the last processed packet.

Allowed values: <= 65535

Default value: 0


The "seqnum-offset" property

  "seqnum-offset"            gint                  : Read / Write

Offset to add to all outgoing seqnum (-1 = random).

Allowed values: [-1,65535]

Default value: -1


The "ssrc" property

  "ssrc"                     guint                 : Read / Write

The SSRC of the packets (default == random).

Default value: 4294967295


The "timestamp" property

  "timestamp"                guint                 : Read

The RTP timestamp of the last processed packet.

Default value: 0


The "timestamp-offset" property

  "timestamp-offset"         guint                 : Read / Write

Offset to add to all outgoing timestamps (default = random).

Default value: 4294967295