rtpbin

RTP bin combines the functions of rtpsession, rtpssrcdemux, rtpjitterbuffer and rtpptdemux in one element. It allows for multiple RTP sessions that will be synchronized together using RTCP SR packets.

rtpbin is configured with a number of request pads that define the functionality that is activated, similar to the rtpsession element.

To use rtpbin as an RTP receiver, request a recv_rtp_sink_%u pad. The session number must be specified in the pad name. Data received on the recv_rtp_sink_%u pad will be processed in the rtpsession manager and after being validated forwarded on rtpssrcdemux element. Each RTP stream is demuxed based on the SSRC and send to a rtpjitterbuffer. After the packets are released from the jitterbuffer, they will be forwarded to a rtpptdemux element. The rtpptdemux element will demux the packets based on the payload type and will create a unique pad recv_rtp_src_%u_%u_%u on rtpbin with the session number, SSRC and payload type respectively as the pad name.

To also use rtpbin as an RTCP receiver, request a recv_rtcp_sink_%u pad. The session number must be specified in the pad name.

If you want the session manager to generate and send RTCP packets, request the send_rtcp_src_%u pad with the session number in the pad name. Packet pushed on this pad contain SR/RR RTCP reports that should be sent to all participants in the session.

To use rtpbin as a sender, request a send_rtp_sink_%u pad, which will automatically create a send_rtp_src_%u pad. If the session number is not provided, the pad from the lowest available session will be returned. The session manager will modify the SSRC in the RTP packets to its own SSRC and wil forward the packets on the send_rtp_src_%u pad after updating its internal state.

The session manager needs the clock-rate of the payload types it is handling and will signal the request-pt-map signal when it needs such a mapping. One can clear the cached values with the clear-pt-map signal.

Access to the internal statistics of rtpbin is provided with the get-internal-session property. This action signal gives access to the RTPSession object which further provides action signals to retrieve the internal source and other sources.

rtpbin also has signals (#GstRtpBin::request-rtp-encoder, request-rtp-decoder, request-rtcp-encoder and request-rtp-decoder) to dynamically request for RTP and RTCP encoders and decoders in order to support SRTP. The encoders must provide the pads rtp_sink_%u and rtp_src_%u for RTP and rtcp_sink_%u and rtcp_src_%u for RTCP. The session number will be used in the pad name. The decoders must provide rtp_sink and rtp_src for RTP and rtcp_sink and rtcp_src for RTCP. The decoders will be placed before the rtpsession element, thus they must support SSRC demuxing internally.

rtpbin has signals (#GstRtpBin::request-aux-sender and request-aux-receiver to dynamically request an element that can be used to create or merge additional RTP streams. AUX elements are needed to implement FEC or retransmission (such as RFC 4588). An AUX sender must have one sink_%u pad that matches the sessionid in the signal and it should have 1 or more src_%u pads. For each src_%\u pad, a session will be made (if needed) and the pad will be linked to the session send_rtp_sink pad. Each session will then expose its source pad as send_rtp_src_%u on rtpbin. An AUX receiver has 1 src_%u pad that much match the sessionid in the signal and 1 or more sink_%u pads. A session will be made for each sink_%u pad when the corresponding recv_rtp_sink_%u pad is requested on rtpbin.

Example pipelines

 gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, ..." ! .recv_rtp_sink_0 \
     rtpbin ! rtptheoradepay ! theoradec ! xvimagesink

Receive RTP data from port 5000 and send to the session 0 in rtpbin.

 gst-launch-1.0 rtpbin name=rtpbin \
         v4l2src ! videoconvert ! ffenc_h263 ! rtph263ppay ! rtpbin.send_rtp_sink_0 \
                   rtpbin.send_rtp_src_0 ! udpsink port=5000                            \
                   rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false    \
                   udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0                           \
         audiotestsrc ! amrnbenc ! rtpamrpay ! rtpbin.send_rtp_sink_1                   \
                   rtpbin.send_rtp_src_1 ! udpsink port=5002                            \
                   rtpbin.send_rtcp_src_1 ! udpsink port=5003 sync=false async=false    \
                   udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1

Encode and payload H263 video captured from a v4l2src. Encode and payload AMR audio generated from audiotestsrc. The video is sent to session 0 in rtpbin and the audio is sent to session 1. Video packets are sent on UDP port 5000 and audio packets on port 5002. The video RTCP packets for session 0 are sent on port 5001 and the audio RTCP packets for session 0 are sent on port 5003. RTCP packets for session 0 are received on port 5005 and RTCP for session 1 is received on port 5007. Since RTCP packets from the sender should be sent as soon as possible and do not participate in preroll, sync=false and async=false is configured on udpsink

 gst-launch-1.0 -v rtpbin name=rtpbin                                          \
     udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" \
             port=5000 ! rtpbin.recv_rtp_sink_0                                \
         rtpbin. ! rtph263pdepay ! ffdec_h263 ! xvimagesink                    \
      udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0                               \
      rtpbin.send_rtcp_src_0 ! udpsink port=5005 sync=false async=false        \
     udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,octet-align=(string)1" \
             port=5002 ! rtpbin.recv_rtp_sink_1                                \
         rtpbin. ! rtpamrdepay ! amrnbdec ! alsasink                           \
      udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1                               \
      rtpbin.send_rtcp_src_1 ! udpsink port=5007 sync=false async=false

Receive H263 on port 5000, send it through rtpbin in session 0, depayload, decode and display the video. Receive AMR on port 5002, send it through rtpbin in session 1, depayload, decode and play the audio. Receive server RTCP packets for session 0 on port 5001 and RTCP packets for session 1 on port 5003. These packets will be used for session management and synchronisation. Send RTCP reports for session 0 on port 5005 and RTCP reports for session 1 on port 5007.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──rtpbin

Factory details

Authors: – Wim Taymans

Classification:Filter/Network/RTP

Rank – none

Plugin – gstrtpmanager

Package – GStreamer Good Plug-ins git

Pad Templates

recv_rtcp_sink_%u

application/x-rtcp:
application/x-srtcp:

Presencerequest

Directionsink


recv_rtp_sink_%u

application/x-rtp:
application/x-srtp:

Presencerequest

Directionsink


recv_rtp_src_%u_%u_%u

application/x-rtp:

Presencesometimes

Directionsrc


send_rtcp_src_%u

application/x-rtcp:
application/x-srtcp:

Presencerequest

Directionsrc


send_rtp_sink_%u

application/x-rtp:

Presencerequest

Directionsink


send_rtp_src_%u

application/x-rtp:
application/x-srtp:

Presencesometimes

Directionsrc


Signals

clear-pt-map

clear_pt_map_callback (GstElement * rtpbin,
                       gpointer udata)
def clear_pt_map_callback (rtpbin, udata):
    #python callback for the 'clear-pt-map' signal
function clear_pt_map_callback(rtpbin: GstElement * rtpbin, udata: gpointer udata): {
    // javascript callback for the 'clear-pt-map' signal
}

Clear all previously cached pt-mapping obtained with request-pt-map.

Parameters:

rtpbin

the object which received the signal

udata
No description available

get-internal-session

RTPSession*
get_internal_session_callback (GstElement * rtpbin,
                               guint id,
                               gpointer udata)
def get_internal_session_callback (rtpbin, id, udata):
    #python callback for the 'get-internal-session' signal
function get_internal_session_callback(rtpbin: GstElement * rtpbin, id: guint id, udata: gpointer udata): {
    // javascript callback for the 'get-internal-session' signal
}

Request the internal RTPSession object as GObject in session id.

Parameters:

rtpbin

the object which received the signal

id

the session id

udata
No description available
Returns ( RTPSession* ) –
No description available

get-internal-storage

GObject *
get_internal_storage_callback (GstElement * rtpbin,
                               guint id,
                               gpointer udata)
def get_internal_storage_callback (rtpbin, id, udata):
    #python callback for the 'get-internal-storage' signal
function get_internal_storage_callback(rtpbin: GstElement * rtpbin, id: guint id, udata: gpointer udata): {
    // javascript callback for the 'get-internal-storage' signal
}

Request the internal RTPStorage object as GObject in session id. This is the internal storage used by the RTPStorage element, which is used to keep a backlog of received RTP packets for the session id.

Parameters:

rtpbin

the object which received the signal

id

the session id

udata
No description available
Returns ( GObject * ) –
No description available

Since : 1.14


get-session

GstElement *
get_session_callback (GstElement * rtpbin,
                      guint id,
                      gpointer udata)
def get_session_callback (rtpbin, id, udata):
    #python callback for the 'get-session' signal
function get_session_callback(rtpbin: GstElement * rtpbin, id: guint id, udata: gpointer udata): {
    // javascript callback for the 'get-session' signal
}

Request the related GstRtpSession as GstElement related with session id.

Parameters:

rtpbin

the object which received the signal

id

the session id

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.8


get-storage

GstElement *
get_storage_callback (GstElement * rtpbin,
                      guint id,
                      gpointer udata)
def get_storage_callback (rtpbin, id, udata):
    #python callback for the 'get-storage' signal
function get_storage_callback(rtpbin: GstElement * rtpbin, id: guint id, udata: gpointer udata): {
    // javascript callback for the 'get-storage' signal
}

Request the RTPStorage element as GObject in session id. This element is used to keep a backlog of received RTP packets for the session id.

Parameters:

rtpbin

the object which received the signal

id

the session id

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.16


new-jitterbuffer

new_jitterbuffer_callback (GstElement * rtpbin,
                           GstElement * jitterbuffer,
                           guint session,
                           guint ssrc,
                           gpointer udata)
def new_jitterbuffer_callback (rtpbin, jitterbuffer, session, ssrc, udata):
    #python callback for the 'new-jitterbuffer' signal
function new_jitterbuffer_callback(rtpbin: GstElement * rtpbin, jitterbuffer: GstElement * jitterbuffer, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'new-jitterbuffer' signal
}

Notify that a new jitterbuffer was created for session and ssrc. This signal can, for example, be used to configure jitterbuffer.

Parameters:

rtpbin

the object which received the signal

jitterbuffer

the new jitterbuffer

session

the session

ssrc

the SSRC

udata
No description available

Since : 1.4


new-storage

new_storage_callback (GstElement * rtpbin,
                      GstElement * storage,
                      guint session,
                      gpointer udata)
def new_storage_callback (rtpbin, storage, session, udata):
    #python callback for the 'new-storage' signal
function new_storage_callback(rtpbin: GstElement * rtpbin, storage: GstElement * storage, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'new-storage' signal
}

Notify that a new storage was created for session. This signal can, for example, be used to configure storage.

Parameters:

rtpbin

the object which received the signal

storage

the new storage

session

the session

udata
No description available

Since : 1.14


no-more-pads

no_more_pads_callback (GstElement * param_0,
                       gpointer udata)
def no_more_pads_callback (param_0, udata):
    #python callback for the 'no-more-pads' signal
function no_more_pads_callback(param_0: GstElement * param_0, udata: gpointer udata): {
    // javascript callback for the 'no-more-pads' signal
}

Parameters:

param_0
No description available
udata
No description available

on-bundled-ssrc

guint
on_bundled_ssrc_callback (GstElement * param_0,
                          guint param_1,
                          gpointer udata)
def on_bundled_ssrc_callback (param_0, param_1, udata):
    #python callback for the 'on-bundled-ssrc' signal
function on_bundled_ssrc_callback(param_0: GstElement * param_0, param_1: guint param_1, udata: gpointer udata): {
    // javascript callback for the 'on-bundled-ssrc' signal
}

Parameters:

param_0
No description available
param_1
No description available
udata
No description available
Returns ( guint ) –
No description available

on-bye-ssrc

on_bye_ssrc_callback (GstElement * rtpbin,
                      guint session,
                      guint ssrc,
                      gpointer udata)
def on_bye_ssrc_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-bye-ssrc' signal
function on_bye_ssrc_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-bye-ssrc' signal
}

Notify of an SSRC that became inactive because of a BYE packet.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-bye-timeout

on_bye_timeout_callback (GstElement * rtpbin,
                         guint session,
                         guint ssrc,
                         gpointer udata)
def on_bye_timeout_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-bye-timeout' signal
function on_bye_timeout_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-bye-timeout' signal
}

Notify of an SSRC that has timed out because of BYE

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-new-sender-ssrc

on_new_sender_ssrc_callback (GstElement * rtpbin,
                             guint session,
                             guint ssrc,
                             gpointer udata)
def on_new_sender_ssrc_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-new-sender-ssrc' signal
function on_new_sender_ssrc_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-new-sender-ssrc' signal
}

Notify of a new sender SSRC that entered session.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the sender SSRC

udata
No description available

Since : 1.8


on-new-ssrc

on_new_ssrc_callback (GstElement * rtpbin,
                      guint session,
                      guint ssrc,
                      gpointer udata)
def on_new_ssrc_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-new-ssrc' signal
function on_new_ssrc_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-new-ssrc' signal
}

Notify of a new SSRC that entered session.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-npt-stop

on_npt_stop_callback (GstElement * rtpbin,
                      guint session,
                      guint ssrc,
                      gpointer udata)
def on_npt_stop_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-npt-stop' signal
function on_npt_stop_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-npt-stop' signal
}

Notify that SSRC sender has sent data up to the configured NPT stop time.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-sender-ssrc-active

on_sender_ssrc_active_callback (GstElement * rtpbin,
                                guint session,
                                guint ssrc,
                                gpointer udata)
def on_sender_ssrc_active_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-sender-ssrc-active' signal
function on_sender_ssrc_active_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-sender-ssrc-active' signal
}

Notify of a sender SSRC that is active, i.e., sending RTCP.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the sender SSRC

udata
No description available

Since : 1.8


on-sender-timeout

on_sender_timeout_callback (GstElement * rtpbin,
                            guint session,
                            guint ssrc,
                            gpointer udata)
def on_sender_timeout_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-sender-timeout' signal
function on_sender_timeout_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-sender-timeout' signal
}

Notify of a sender SSRC that has timed out and became a receiver

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-ssrc-active

on_ssrc_active_callback (GstElement * rtpbin,
                         guint session,
                         guint ssrc,
                         gpointer udata)
def on_ssrc_active_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-ssrc-active' signal
function on_ssrc_active_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-ssrc-active' signal
}

Notify of a SSRC that is active, i.e., sending RTCP.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-ssrc-collision

on_ssrc_collision_callback (GstElement * rtpbin,
                            guint session,
                            guint ssrc,
                            gpointer udata)
def on_ssrc_collision_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-ssrc-collision' signal
function on_ssrc_collision_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-ssrc-collision' signal
}

Notify when we have an SSRC collision

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-ssrc-sdes

on_ssrc_sdes_callback (GstElement * rtpbin,
                       guint session,
                       guint ssrc,
                       gpointer udata)
def on_ssrc_sdes_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-ssrc-sdes' signal
function on_ssrc_sdes_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-ssrc-sdes' signal
}

Notify of a SSRC that is active, i.e., sending RTCP.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-ssrc-validated

on_ssrc_validated_callback (GstElement * rtpbin,
                            guint session,
                            guint ssrc,
                            gpointer udata)
def on_ssrc_validated_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-ssrc-validated' signal
function on_ssrc_validated_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-ssrc-validated' signal
}

Notify of a new SSRC that became validated.

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

on-timeout

on_timeout_callback (GstElement * rtpbin,
                     guint session,
                     guint ssrc,
                     gpointer udata)
def on_timeout_callback (rtpbin, session, ssrc, udata):
    #python callback for the 'on-timeout' signal
function on_timeout_callback(rtpbin: GstElement * rtpbin, session: guint session, ssrc: guint ssrc, udata: gpointer udata): {
    // javascript callback for the 'on-timeout' signal
}

Notify of an SSRC that has timed out

Parameters:

rtpbin

the object which received the signal

session

the session

ssrc

the SSRC

udata
No description available

pad-added

pad_added_callback (GstElement * param_0,
                    GstPad * param_1,
                    gpointer udata)
def pad_added_callback (param_0, param_1, udata):
    #python callback for the 'pad-added' signal
function pad_added_callback(param_0: GstElement * param_0, param_1: GstPad * param_1, udata: gpointer udata): {
    // javascript callback for the 'pad-added' signal
}

Parameters:

param_0
No description available
param_1
No description available
udata
No description available

pad-removed

pad_removed_callback (GstElement * param_0,
                      GstPad * param_1,
                      gpointer udata)
def pad_removed_callback (param_0, param_1, udata):
    #python callback for the 'pad-removed' signal
function pad_removed_callback(param_0: GstElement * param_0, param_1: GstPad * param_1, udata: gpointer udata): {
    // javascript callback for the 'pad-removed' signal
}

Parameters:

param_0
No description available
param_1
No description available
udata
No description available

payload-type-change

payload_type_change_callback (GstElement * rtpbin,
                              guint session,
                              guint pt,
                              gpointer udata)
def payload_type_change_callback (rtpbin, session, pt, udata):
    #python callback for the 'payload-type-change' signal
function payload_type_change_callback(rtpbin: GstElement * rtpbin, session: guint session, pt: guint pt, udata: gpointer udata): {
    // javascript callback for the 'payload-type-change' signal
}

Signal that the current payload type changed to pt in session.

Parameters:

rtpbin

the object which received the signal

session

the session

pt

the pt

udata
No description available

request-aux-receiver

GstElement *
request_aux_receiver_callback (GstElement * rtpbin,
                               guint session,
                               gpointer udata)
def request_aux_receiver_callback (rtpbin, session, udata):
    #python callback for the 'request-aux-receiver' signal
function request_aux_receiver_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-aux-receiver' signal
}

Request an AUX receiver element for the given session. The AUX element will be added to the bin.

If no handler is connected, no AUX element will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


request-aux-sender

GstElement *
request_aux_sender_callback (GstElement * rtpbin,
                             guint session,
                             gpointer udata)
def request_aux_sender_callback (rtpbin, session, udata):
    #python callback for the 'request-aux-sender' signal
function request_aux_sender_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-aux-sender' signal
}

Request an AUX sender element for the given session. The AUX element will be added to the bin.

If no handler is connected, no AUX element will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


request-fec-decoder

GstElement *
request_fec_decoder_callback (GstElement * rtpbin,
                              guint session,
                              gpointer udata)
def request_fec_decoder_callback (rtpbin, session, udata):
    #python callback for the 'request-fec-decoder' signal
function request_fec_decoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-fec-decoder' signal
}

Request a FEC decoder element for the given session. The element will be added to the bin after the pt demuxer.

If no handler is connected, no FEC decoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session index

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.14


request-fec-encoder

GstElement *
request_fec_encoder_callback (GstElement * rtpbin,
                              guint session,
                              gpointer udata)
def request_fec_encoder_callback (rtpbin, session, udata):
    #python callback for the 'request-fec-encoder' signal
function request_fec_encoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-fec-encoder' signal
}

Request a FEC encoder element for the given session. The element will be added to the bin after the RTPSession.

If no handler is connected, no FEC encoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session index

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.14


request-pt-map

GstCaps *
request_pt_map_callback (GstElement * rtpbin,
                         guint session,
                         guint pt,
                         gpointer udata)
def request_pt_map_callback (rtpbin, session, pt, udata):
    #python callback for the 'request-pt-map' signal
function request_pt_map_callback(rtpbin: GstElement * rtpbin, session: guint session, pt: guint pt, udata: gpointer udata): {
    // javascript callback for the 'request-pt-map' signal
}

Request the payload type as GstCaps for pt in session.

Parameters:

rtpbin

the object which received the signal

session

the session

pt

the pt

udata
No description available
Returns ( GstCaps * ) –
No description available

request-rtcp-decoder

GstElement *
request_rtcp_decoder_callback (GstElement * rtpbin,
                               guint session,
                               gpointer udata)
def request_rtcp_decoder_callback (rtpbin, session, udata):
    #python callback for the 'request-rtcp-decoder' signal
function request_rtcp_decoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-rtcp-decoder' signal
}

Request an RTCP decoder element for the given session. The decoder element will be added to the bin if not previously added.

If no handler is connected, no encoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


request-rtcp-encoder

GstElement *
request_rtcp_encoder_callback (GstElement * rtpbin,
                               guint session,
                               gpointer udata)
def request_rtcp_encoder_callback (rtpbin, session, udata):
    #python callback for the 'request-rtcp-encoder' signal
function request_rtcp_encoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-rtcp-encoder' signal
}

Request an RTCP encoder element for the given session. The encoder element will be added to the bin if not previously added.

If no handler is connected, no encoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


request-rtp-decoder

GstElement *
request_rtp_decoder_callback (GstElement * rtpbin,
                              guint session,
                              gpointer udata)
def request_rtp_decoder_callback (rtpbin, session, udata):
    #python callback for the 'request-rtp-decoder' signal
function request_rtp_decoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-rtp-decoder' signal
}

Request an RTP decoder element for the given session. The decoder element will be added to the bin if not previously added.

If no handler is connected, no encoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


request-rtp-encoder

GstElement *
request_rtp_encoder_callback (GstElement * rtpbin,
                              guint session,
                              gpointer udata)
def request_rtp_encoder_callback (rtpbin, session, udata):
    #python callback for the 'request-rtp-encoder' signal
function request_rtp_encoder_callback(rtpbin: GstElement * rtpbin, session: guint session, udata: gpointer udata): {
    // javascript callback for the 'request-rtp-encoder' signal
}

Request an RTP encoder element for the given session. The encoder element will be added to the bin if not previously added.

If no handler is connected, no encoder will be used.

Parameters:

rtpbin

the object which received the signal

session

the session

udata
No description available
Returns ( GstElement * ) –
No description available

Since : 1.4


reset-sync

reset_sync_callback (GstElement * rtpbin,
                     gpointer udata)
def reset_sync_callback (rtpbin, udata):
    #python callback for the 'reset-sync' signal
function reset_sync_callback(rtpbin: GstElement * rtpbin, udata: gpointer udata): {
    // javascript callback for the 'reset-sync' signal
}

Reset all currently configured lip-sync parameters and require new SR packets for all streams before lip-sync is attempted again.

Parameters:

rtpbin

the object which received the signal

udata
No description available

Properties

async-handling

“async-handling” gboolean

The bin will handle Asynchronous state changes

Flags : Read / Write

Default value : false


autoremove

“autoremove” gboolean

Automatically remove timed out sources

Flags : Read / Write

Default value : false


buffer-mode

“buffer-mode” Rtpjitter-buffer-mode

Control the buffering and timestamping mode used by the jitterbuffer.

Flags : Read / Write

Default value : slave (1)


do-lost

“do-lost” gboolean

Send an event downstream when a packet is lost

Flags : Read / Write

Default value : false


do-retransmission

“do-retransmission” gboolean

Enables RTP retransmission on all streams. To control retransmission on a per-SSRC basis, connect to the new-jitterbuffer signal and set the do-retransmission property on the rtpjitterbuffer object instead.

Flags : Read / Write

Default value : false


do-sync-event

“do-sync-event” gboolean

Send event downstream when a stream is synchronized to the sender

Flags : Read / Write

Default value : false


drop-on-latency

“drop-on-latency” gboolean

Tells the jitterbuffer to never exceed the given latency in size

Flags : Read / Write

Default value : false


ignore-pt

“ignore-pt” gboolean

Do not demultiplex based on PT values

Flags : Read / Write

Default value : false


latency

“latency” guint

Default amount of ms to buffer in the jitterbuffers

Flags : Read / Write

Default value : 200


max-dropout-time

“max-dropout-time” guint

The maximum time (milliseconds) of missing packets tolerated.

Flags : Read / Write

Default value : 60000


max-misorder-time

“max-misorder-time” guint

The maximum time (milliseconds) of misordered packets tolerated.

Flags : Read / Write

Default value : 2000


max-rtcp-rtp-time-diff

“max-rtcp-rtp-time-diff” gint

Maximum amount of time in ms that the RTP time in RTCP SRs is allowed to be ahead (-1 disabled)

Flags : Read / Write

Default value : 1000


max-streams

“max-streams” guint

The maximum number of streams to create for one session

Flags : Read / Write

Default value : -1


max-ts-offset

“max-ts-offset” gint64

Used to set an upper limit of how large a time offset may be. This is used to protect against unrealistic values as a result of either client,server or clock issues.

Flags : Read / Write

Default value : 3000000000


max-ts-offset-adjustment

“max-ts-offset-adjustment” guint64

Syncing time stamps to NTP time adds a time offset. This parameter specifies the maximum number of nanoseconds per frame that this time offset may be adjusted with. This is used to avoid sudden large changes to time stamps.

Flags : Read / Write

Default value : 0


message-forward

“message-forward” gboolean

Forwards all children messages

Flags : Read / Write

Default value : false


name

“name” gchararray

The name of the object

Flags : Read / Write / Construct

Default value : NULL


ntp-sync

“ntp-sync” gboolean

Set the NTP time from the sender reports as the running-time on the buffers. When both the sender and receiver have sychronized running-time, i.e. when the clock and base-time is shared between the receivers and the and the senders, this option can be used to synchronize receivers on multiple machines.

Flags : Read / Write

Default value : false


ntp-time-source

“ntp-time-source” Rtp-ntp-time-source

NTP time source for RTCP packets

Flags : Read / Write

Default value : ntp (0)


parent

“parent” GstObject *

The parent of the object

Flags : Read / Write


rfc7273-sync

“rfc7273-sync” gboolean

Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided)

Flags : Read / Write

Default value : false


rtcp-sync

“rtcp-sync” Rtcpsync

If not synchronizing (directly) to the NTP clock, determines how to sync the various streams.

Flags : Read / Write

Default value : always (0)


rtcp-sync-interval

“rtcp-sync-interval” guint

Determines how often to sync streams using RTCP data.

Flags : Read / Write

Default value : 0


rtcp-sync-send-time

“rtcp-sync-send-time” gboolean

Use send time or capture time for RTCP sync (TRUE = send time, FALSE = capture time)

Flags : Read / Write

Default value : true


rtp-profile

“rtp-profile” Rtpprofile

Sets the default RTP profile of newly created RTP sessions. The profile can be changed afterwards on a per-session basis.

Flags : Read / Write

Default value : avp (1)


sdes

“sdes” GstStructure *

The SDES items of this session

Flags : Read / Write

Default value : application/x-rtp-source-sdes, cname=(string)"user648023474\@host-e59d5d7e", tool=(string)GStreamer;


use-pipeline-clock

“use-pipeline-clock” gboolean

Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property)

Flags : Read / Write

Default value : false


Named constants

Rtcpsync

Members

always (0) – always
initial (1) – initial
rtp-info (2) – rtp-info

Rtp-ntp-time-source

Members

ntp (0) – NTP time based on realtime clock
unix (1) – UNIX time based on realtime clock
running-time (2) – Running time based on pipeline clock
clock-time (3) – Pipeline clock time

Rtpjitter-buffer-mode

The different buffer modes for a jitterbuffer.

Members

none (0) – Only use RTP timestamps
slave (1) – Slave receiver to sender clock
buffer (2) – Do low/high watermark buffering
synced (4) – Synchronized sender and receiver clocks

Rtpprofile

Members

unknown (0) – GST_RTP_PROFILE_UNKNOWN
avp (1) – GST_RTP_PROFILE_AVP
savp (2) – GST_RTP_PROFILE_SAVP
avpf (3) – GST_RTP_PROFILE_AVPF
savpf (4) – GST_RTP_PROFILE_SAVPF

The results of the search are