mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
rtspsrc: Proxy rtpjitterbuffer do-retransmission property
https://bugzilla.gnome.org/show_bug.cgi?id=722866
This commit is contained in:
parent
204bd715d2
commit
9f7b1128b1
2 changed files with 21 additions and 0 deletions
|
@ -172,6 +172,7 @@ gst_rtsp_src_buffer_mode_get_type (void)
|
|||
#define DEFAULT_TCP_TIMEOUT 20000000
|
||||
#define DEFAULT_LATENCY_MS 2000
|
||||
#define DEFAULT_DROP_ON_LATENCY FALSE
|
||||
#define DEFAULT_DO_RETRANSMISSION FALSE
|
||||
#define DEFAULT_CONNECTION_SPEED 0
|
||||
#define DEFAULT_NAT_METHOD GST_RTSP_NAT_DUMMY
|
||||
#define DEFAULT_DO_RTCP TRUE
|
||||
|
@ -201,6 +202,7 @@ enum
|
|||
PROP_TCP_TIMEOUT,
|
||||
PROP_LATENCY,
|
||||
PROP_DROP_ON_LATENCY,
|
||||
PROP_DO_RETRANSMISSION,
|
||||
PROP_CONNECTION_SPEED,
|
||||
PROP_NAT_METHOD,
|
||||
PROP_DO_RTCP,
|
||||
|
@ -403,6 +405,12 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
|
|||
"Tells the jitterbuffer to never exceed the given latency in size",
|
||||
DEFAULT_DROP_ON_LATENCY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||
|
||||
g_object_class_install_property (gobject_class, PROP_DO_RETRANSMISSION,
|
||||
g_param_spec_boolean ("do-retransmission", "Do retransmission",
|
||||
"Send retransmission events upstream when a packet is late",
|
||||
DEFAULT_DO_RETRANSMISSION,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||
|
||||
g_object_class_install_property (gobject_class, PROP_CONNECTION_SPEED,
|
||||
g_param_spec_uint64 ("connection-speed", "Connection Speed",
|
||||
"Network connection speed in kbps (0 = unknown)",
|
||||
|
@ -677,6 +685,7 @@ gst_rtspsrc_init (GstRTSPSrc * src)
|
|||
gst_rtspsrc_set_tcp_timeout (src, DEFAULT_TCP_TIMEOUT);
|
||||
src->latency = DEFAULT_LATENCY_MS;
|
||||
src->drop_on_latency = DEFAULT_DROP_ON_LATENCY;
|
||||
src->do_retransmission = DEFAULT_DO_RETRANSMISSION;
|
||||
src->connection_speed = DEFAULT_CONNECTION_SPEED;
|
||||
src->nat_method = DEFAULT_NAT_METHOD;
|
||||
src->do_rtcp = DEFAULT_DO_RTCP;
|
||||
|
@ -867,6 +876,9 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
|
|||
case PROP_DROP_ON_LATENCY:
|
||||
rtspsrc->drop_on_latency = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_DO_RETRANSMISSION:
|
||||
rtspsrc->do_retransmission = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_CONNECTION_SPEED:
|
||||
rtspsrc->connection_speed = g_value_get_uint64 (value);
|
||||
break;
|
||||
|
@ -999,6 +1011,9 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
|
|||
case PROP_DROP_ON_LATENCY:
|
||||
g_value_set_boolean (value, rtspsrc->drop_on_latency);
|
||||
break;
|
||||
case PROP_DO_RETRANSMISSION:
|
||||
g_value_set_boolean (value, rtspsrc->do_retransmission);
|
||||
break;
|
||||
case PROP_CONNECTION_SPEED:
|
||||
g_value_set_uint64 (value, rtspsrc->connection_speed);
|
||||
break;
|
||||
|
@ -2763,6 +2778,11 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
|
|||
NULL);
|
||||
}
|
||||
|
||||
if (g_object_class_find_property (klass, "do-retransmission")) {
|
||||
g_object_set (src->manager, "do-retransmission", src->do_retransmission,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/* buffer mode pauses are handled by adding offsets to buffer times,
|
||||
* but some depayloaders may have a hard time syncing output times
|
||||
* with such input times, e.g. container ones, most notably ASF */
|
||||
|
|
|
@ -204,6 +204,7 @@ struct _GstRTSPSrc {
|
|||
GTimeVal *ptcp_timeout;
|
||||
guint latency;
|
||||
gboolean drop_on_latency;
|
||||
gboolean do_retransmission;
|
||||
guint64 connection_speed;
|
||||
GstRTSPNatMethod nat_method;
|
||||
gboolean do_rtcp;
|
||||
|
|
Loading…
Reference in a new issue