summaryrefslogtreecommitdiff
path: root/gst/rtpmanager/rtpsession.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtpmanager/rtpsession.c')
-rw-r--r--gst/rtpmanager/rtpsession.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index 5c52766e0..b8429a1a3 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -78,6 +78,7 @@ enum
#define DEFAULT_RTP_PROFILE GST_RTP_PROFILE_AVP
#define DEFAULT_RTCP_REDUCED_SIZE FALSE
#define DEFAULT_RTCP_DISABLE_SR_TIMESTAMP FALSE
+#define DEFAULT_TWCC_FEEDBACK_INTERVAL GST_CLOCK_TIME_NONE
enum
{
@@ -103,7 +104,8 @@ enum
PROP_STATS,
PROP_RTP_PROFILE,
PROP_RTCP_REDUCED_SIZE,
- PROP_RTCP_DISABLE_SR_TIMESTAMP
+ PROP_RTCP_DISABLE_SR_TIMESTAMP,
+ PROP_TWCC_FEEDBACK_INTERVAL,
};
/* update average packet size */
@@ -629,6 +631,23 @@ rtp_session_class_init (RTPSessionClass * klass)
DEFAULT_RTCP_DISABLE_SR_TIMESTAMP,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * RTPSession::twcc-feedback-interval:
+ *
+ * The interval to send TWCC reports on.
+ * This overrides the default behavior of sending reports
+ * based on marker-bits.
+ *
+ * Since: 1.20
+ */
+ g_object_class_install_property (gobject_class,
+ PROP_TWCC_FEEDBACK_INTERVAL,
+ g_param_spec_uint64 ("twcc-feedback-interval",
+ "TWCC Feedback Interval",
+ "The interval to send TWCC reports on",
+ 0, G_MAXUINT64, DEFAULT_TWCC_FEEDBACK_INTERVAL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
klass->get_source_by_ssrc =
GST_DEBUG_FUNCPTR (rtp_session_get_source_by_ssrc);
klass->send_rtcp = GST_DEBUG_FUNCPTR (rtp_session_send_rtcp);
@@ -907,6 +926,10 @@ rtp_session_set_property (GObject * object, guint prop_id,
case PROP_RTCP_DISABLE_SR_TIMESTAMP:
sess->timestamp_sender_reports = !g_value_get_boolean (value);
break;
+ case PROP_TWCC_FEEDBACK_INTERVAL:
+ rtp_twcc_manager_set_feedback_interval (sess->twcc,
+ g_value_get_uint64 (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -989,6 +1012,10 @@ rtp_session_get_property (GObject * object, guint prop_id,
case PROP_RTCP_DISABLE_SR_TIMESTAMP:
g_value_set_boolean (value, !sess->timestamp_sender_reports);
break;
+ case PROP_TWCC_FEEDBACK_INTERVAL:
+ g_value_set_uint64 (value,
+ rtp_twcc_manager_get_feedback_interval (sess->twcc));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;