mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
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.
This commit is contained in:
parent
5ad2dc58df
commit
ff79f31297
2 changed files with 34 additions and 0 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2008-05-26 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||
|
||||
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.
|
||||
|
||||
2008-05-26 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||
|
||||
* examples/switch/switcher.c: (switch_timer):
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue