diff options
author | Håvard Graff <havard.graff@tandberg.com> | 2008-05-26 10:00:24 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2008-05-26 10:00:24 +0000 |
commit | ff79f31297d201afe8e74c11f6e65fad26fbf12d (patch) | |
tree | 42c09c63562148080ebc5c218545c40946af0f78 /gst | |
parent | 5ad2dc58df08b5871fe67e300983858bfccd79f4 (diff) | |
download | gst-plugins-bad-ff79f31297d201afe8e74c11f6e65fad26fbf12d.tar.gz gst-plugins-bad-ff79f31297d201afe8e74c11f6e65fad26fbf12d.tar.bz2 gst-plugins-bad-ff79f31297d201afe8e74c11f6e65fad26fbf12d.zip |
gst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to the jitterbuffers when they are changed o...
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst/rtpmanager/gstrtpbin.c:
(gst_rtp_bin_propagate_property_to_jitterbuffer),
(gst_rtp_bin_set_property):
Propagate the do-lost and latency properties to the jitterbuffers when
they are changed on rtpbin.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/rtpmanager/gstrtpbin.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index d7a2c4ae..121e3595 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -672,6 +672,27 @@ gst_rtp_bin_clear_pt_map (GstRtpBin * bin) GST_RTP_BIN_UNLOCK (bin); } +static void +gst_rtp_bin_propagate_property_to_jitterbuffer (GstRtpBin * bin, + const gchar * name, const GValue * value) +{ + GSList *sessions, *streams; + + GST_RTP_BIN_LOCK (bin); + for (sessions = bin->sessions; sessions; sessions = g_slist_next (sessions)) { + GstRtpBinSession *session = (GstRtpBinSession *) sessions->data; + + GST_RTP_SESSION_LOCK (session); + for (streams = session->streams; streams; streams = g_slist_next (streams)) { + GstRtpBinStream *stream = (GstRtpBinStream *) streams->data; + + g_object_set_property (G_OBJECT (stream->buffer), name, value); + } + GST_RTP_SESSION_UNLOCK (session); + } + GST_RTP_BIN_UNLOCK (bin); +} + /* get a client with the given SDES name. Must be called with RTP_BIN_LOCK */ static GstRtpBinClient * get_client (GstRtpBin * bin, guint8 len, guint8 * data, gboolean * created) @@ -1461,6 +1482,8 @@ gst_rtp_bin_set_property (GObject * object, guint prop_id, GST_RTP_BIN_LOCK (rtpbin); rtpbin->latency = g_value_get_uint (value); GST_RTP_BIN_UNLOCK (rtpbin); + /* propegate the property down to the jitterbuffer */ + gst_rtp_bin_propagate_property_to_jitterbuffer (rtpbin, "latency", value); break; case PROP_SDES_CNAME: gst_rtp_bin_set_sdes_string (rtpbin, GST_RTCP_SDES_CNAME, @@ -1494,6 +1517,7 @@ gst_rtp_bin_set_property (GObject * object, guint prop_id, GST_RTP_BIN_LOCK (rtpbin); rtpbin->do_lost = g_value_get_boolean (value); GST_RTP_BIN_UNLOCK (rtpbin); + gst_rtp_bin_propagate_property_to_jitterbuffer (rtpbin, "do-lost", value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |