GStreamer Good Plugins 0.10 Plugins Reference Manual | ||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Signals |
"do-lost" gboolean : Read / Write "latency" guint : Read / Write "sdes" GstStructure* : Read / Write "ignore-pt" gboolean : Read / Write "autoremove" gboolean : Read / Write "buffer-mode" RTPJitterBufferMode : Read / Write
"clear-pt-map" : Run Last / Action "get-internal-session" : Run Last / Action "on-bye-ssrc" : Run Last "on-bye-timeout" : Run Last "on-new-ssrc" : Run Last "on-npt-stop" : Run Last "on-sender-timeout" : Run Last "on-ssrc-active" : Run Last "on-ssrc-collision" : Run Last "on-ssrc-sdes" : Run Last "on-ssrc-validated" : Run Last "on-timeout" : Run Last "request-pt-map" : Run Last "reset-sync" : Run Last / Action "payload-type-change" : Run Last
RTP bin combines the functions of GstRtpSession, GstRtpSsrcDemux, GstRtpJitterBuffer and GstRtpPtDemux in one element. It allows for multiple RTP sessions that will be synchronized together using RTCP SR packets.
GstRtpBin is configured with a number of request pads that define the functionality that is activated, similar to the GstRtpSession element.
To use GstRtpBin as an RTP receiver, request a recv_rtp_sink_%d
pad. The session
number must be specified in the pad name.
Data received on the recv_rtp_sink_%d
pad will be processed in the GstRtpSession
manager and after being validated forwarded on GstRtpSsrcDemux element. Each
RTP stream is demuxed based on the SSRC and send to a GstRtpJitterBuffer. After
the packets are released from the jitterbuffer, they will be forwarded to a
GstRtpSsrcDemux element. The GstRtpSsrcDemux element will demux the packets based
on the payload type and will create a unique pad recv_rtp_src_%d_
%d_
%d
on
gstrtpbin with the session number, SSRC and payload type respectively as the pad
name.
To also use GstRtpBin as an RTCP receiver, request a recv_rtcp_sink_%d
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_%d
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 GstRtpBin as a sender, request a send_rtp_sink_%d
pad, which will
automatically create a send_rtp_src_%d
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_%d
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.
gst-launch udpsrc port=5000 caps="application/x-rtp, ..." ! .recv_rtp_sink_0 \ gstrtpbin ! rtptheoradepay ! theoradec ! xvimagesink
gst-launch gstrtpbin name=rtpbin \ v4l2src ! ffmpegcolorspace ! 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
gst-launch -v gstrtpbin 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
Last reviewed on 2007-08-30 (0.10.6)
"do-lost"
property "do-lost" gboolean : Read / Write
Send an event downstream when a packet is lost.
Default value: FALSE
"latency"
property "latency" guint : Read / Write
Default amount of ms to buffer in the jitterbuffers.
Default value: 200
"ignore-pt"
property "ignore-pt" gboolean : Read / Write
Do not demultiplex based on PT values.
Default value: FALSE
"autoremove"
property "autoremove" gboolean : Read / Write
Automatically remove timed out sources.
Default value: FALSE
"clear-pt-map"
signalvoid user_function (GstRtpBin *rtpbin, gpointer user_data) : Run Last / Action
Clear all previously cached pt-mapping obtained with "request-pt-map".
|
the object which received the signal |
|
user data set when the signal handler was connected. |
"get-internal-session"
signalRTPSession* user_function (GstRtpBin *rtpbin, guint id, gpointer user_data) : Run Last / Action
Request the internal RTPSession object as GObject in session id
.
|
the object which received the signal |
|
the session id |
|
user data set when the signal handler was connected. |
"on-bye-ssrc"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of an SSRC that became inactive because of a BYE packet.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-bye-timeout"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of an SSRC that has timed out because of BYE
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-new-ssrc"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of a new SSRC that entered session
.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-npt-stop"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify that SSRC sender has sent data up to the configured NPT stop time.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-sender-timeout"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of a sender SSRC that has timed out and became a receiver
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-ssrc-active"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of a SSRC that is active, i.e., sending RTCP.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-ssrc-collision"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify when we have an SSRC collision
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-ssrc-sdes"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of a SSRC that is active, i.e., sending RTCP.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-ssrc-validated"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of a new SSRC that became validated.
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"on-timeout"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint ssrc, gpointer user_data) : Run Last
Notify of an SSRC that has timed out
|
the object which received the signal |
|
the session |
|
the SSRC |
|
user data set when the signal handler was connected. |
"request-pt-map"
signalGstCaps* user_function (GstRtpBin *rtpbin, guint session, guint pt, gpointer user_data) : Run Last
Request the payload type as GstCaps for pt
in session
.
|
the object which received the signal |
|
the session |
|
the pt |
|
user data set when the signal handler was connected. |
"reset-sync"
signalvoid user_function (GstRtpBin *rtpbin, gpointer user_data) : Run Last / Action
Reset all currently configured lip-sync parameters and require new SR packets for all streams before lip-sync is attempted again.
|
the object which received the signal |
|
user data set when the signal handler was connected. |
"payload-type-change"
signalvoid user_function (GstRtpBin *rtpbin, guint session, guint pt, gpointer user_data) : Run Last
Signal that the current payload type changed to pt
in session
.
|
the object which received the signal |
|
the session |
|
the pt |
|
user data set when the signal handler was connected. |
Since 0.10.17