gstrtpjitterbuffer

gstrtpjitterbuffer — A buffer that deals with network jitter and other transmission faults

Synopsis

                    GstRtpJitterBuffer;

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstRtpJitterBuffer

Properties

  "do-lost"                  gboolean              : Read / Write
  "drop-on-latency"          gboolean              : Read / Write
  "latency"                  guint                 : Read / Write
  "ts-offset"                gint64                : Read / Write
  "mode"                     RTPJitterBufferMode   : Read / Write
  "percent"                  gint                  : Read

Signals

  "clear-pt-map"                                   : Run Last / Action
  "handle-sync"                                    : Run Last
  "on-npt-stop"                                    : Run Last
  "request-pt-map"                                 : Run Last
  "set-active"                                     : Run Last / Action

Description

This element reorders and removes duplicate RTP packets as they are received from a network source. It will also wait for missing packets up to a configurable time limit using the "latency" property. Packets arriving too late are considered to be lost packets.

This element acts as a live element and so adds "latency" to the pipeline.

The element needs the clock-rate of the RTP payload in order to estimate the delay. This information is obtained either from the caps on the sink pad or, when no caps are present, from the "request-pt-map" signal. To clear the previous pt-map use the "clear-pt-map" signal.

This element will automatically be used inside gstrtpbin.

Example pipelines

gst-launch rtspsrc location=rtsp://192.168.1.133:8554/mpeg1or2AudioVideoTest ! gstrtpjitterbuffer ! rtpmpvdepay ! mpeg2dec ! xvimagesink
Connect to a streaming server and decode the MPEG video. The jitterbuffer is inserted into the pipeline to smooth out network jitter and to reorder the out-of-order RTP packets.

Last reviewed on 2007-05-28 (0.10.5)

Details

GstRtpJitterBuffer

typedef struct _GstRtpJitterBuffer GstRtpJitterBuffer;

Opaque jitterbuffer structure.

Property Details

The "do-lost" property

  "do-lost"                  gboolean              : Read / Write

Send an event downstream when a packet is lost.

Default value: FALSE


The "drop-on-latency" property

  "drop-on-latency"          gboolean              : Read / Write

Tells the jitterbuffer to never exceed the given latency in size.

Default value: FALSE


The "latency" property

  "latency"                  guint                 : Read / Write

Amount of ms to buffer.

Default value: 200


The "ts-offset" property

  "ts-offset"                gint64                : Read / Write

Adjust buffer timestamps with offset in nanoseconds.

Default value: 0


The "mode" property

  "mode"                     RTPJitterBufferMode   : Read / Write

Control the buffering algorithm in use.

Default value: Slave receiver to sender clock


The "percent" property

  "percent"                  gint                  : Read

The buffer filled percent.

Allowed values: [0,100]

Default value: 0

Signal Details

The "clear-pt-map" signal

void                user_function                      (GstRtpJitterBuffer *buffer,
                                                        gpointer            user_data)      : Run Last / Action

Invalidate the clock-rate as obtained with the "request-pt-map" signal.

buffer :

the object which received the signal

user_data :

user data set when the signal handler was connected.

The "handle-sync" signal

void                user_function                      (GstRtpJitterBuffer *buffer,
                                                        GstStructure       *struct,
                                                        gpointer            user_data)      : Run Last

Be notified of new sync values.

buffer :

the object which received the signal

struct :

a GstStructure containing sync values.

user_data :

user data set when the signal handler was connected.

The "on-npt-stop" signal

void                user_function                      (GstRtpJitterBuffer *buffer,
                                                        gpointer            user_data)      : Run Last

Signal that the jitterbufer has pushed the RTP packet that corresponds to the npt-stop position.

buffer :

the object which received the signal

user_data :

user data set when the signal handler was connected.

The "request-pt-map" signal

GstCaps*            user_function                      (GstRtpJitterBuffer *buffer,
                                                        guint               pt,
                                                        gpointer            user_data)      : Run Last

Request the payload type as GstCaps for pt.

buffer :

the object which received the signal

pt :

the pt

user_data :

user data set when the signal handler was connected.

The "set-active" signal

guint64             user_function                      (GstRtpJitterBuffer *buffer,
                                                        gboolean            Returns,
                                                        guint64             arg2,
                                                        gpointer            user_data)      : Run Last / Action

Start pushing out packets with the given base time. This signal is only useful in buffering mode.

buffer :

the object which received the signal

user_data :

user data set when the signal handler was connected.

Returns :

the time of the last pushed packet.

Since 0.10.19