srt: Simplify socket stats

Don't hide stats depending on whether we're a sending or receiving
socket. While we're here, add some more debug logs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3329>
This commit is contained in:
Jan Alexander Steffens (heftig) 2022-10-11 11:14:59 +02:00 committed by Tim-Philipp Müller
parent 34f9788dd6
commit 7425fdf2ba

View file

@ -1842,16 +1842,20 @@ gst_srt_object_write (GstSRTObject * srtobject,
}
static GstStructure *
get_stats_for_srtsock (SRTSOCKET srtsock, gboolean is_sender)
get_stats_for_srtsock (GstSRTObject * srtobject, SRTSOCKET srtsock)
{
GstStructure *s = gst_structure_new_empty ("application/x-srt-statistics");
int ret;
SRT_TRACEBSTATS stats;
ret = srt_bstats (srtsock, &stats, 0);
if (ret < 0) {
GST_WARNING_OBJECT (srtobject->element,
"failed to retrieve stats for socket %d (reason %s)",
srtsock, srt_getlasterror_str ());
return s;
}
if (ret >= 0) {
if (is_sender) {
gst_structure_set (s,
/* number of sent data packets, including retransmissions */
"packets-sent", G_TYPE_INT64, stats.pktSent,
@ -1877,9 +1881,7 @@ get_stats_for_srtsock (SRTSOCKET srtsock, gboolean is_sender)
"send-rate-mbps", G_TYPE_DOUBLE, stats.mbpsSendRate,
/* busy sending time (i.e., idle time exclusive) */
"send-duration-us", G_TYPE_UINT64, stats.usSndDuration,
"negotiated-latency-ms", G_TYPE_INT, stats.msSndTsbPdDelay, NULL);
} else {
gst_structure_set (s,
"negotiated-latency-ms", G_TYPE_INT, stats.msSndTsbPdDelay,
"packets-received", G_TYPE_INT64, stats.pktRecvTotal,
"packets-received-lost", G_TYPE_INT, stats.pktRcvLossTotal,
/* number of sent ACK packets */
@ -1889,16 +1891,13 @@ get_stats_for_srtsock (SRTSOCKET srtsock, gboolean is_sender)
"bytes-received", G_TYPE_UINT64, stats.byteRecvTotal,
"bytes-received-lost", G_TYPE_UINT64, stats.byteRcvLossTotal,
"receive-rate-mbps", G_TYPE_DOUBLE, stats.mbpsRecvRate,
"negotiated-latency-ms", G_TYPE_INT, stats.msRcvTsbPdDelay, NULL);
}
gst_structure_set (s,
"negotiated-latency-ms", G_TYPE_INT, stats.msRcvTsbPdDelay,
/* estimated bandwidth, in Mb/s */
"bandwidth-mbps", G_TYPE_DOUBLE, stats.mbpsBandwidth,
"rtt-ms", G_TYPE_DOUBLE, stats.msRTT, NULL);
}
GST_DEBUG_OBJECT (srtobject->element,
"retreived stats for socket %d: %" GST_PTR_FORMAT, srtsock, s);
return s;
}
@ -1911,7 +1910,7 @@ gst_srt_object_get_stats (GstSRTObject * srtobject)
g_mutex_lock (&srtobject->sock_lock);
if (srtobject->sock != SRT_INVALID_SOCK) {
s = get_stats_for_srtsock (srtobject->sock, is_sender);
s = get_stats_for_srtsock (srtobject, srtobject->sock);
goto done;
}
@ -1927,7 +1926,7 @@ gst_srt_object_get_stats (GstSRTObject * srtobject)
GstStructure *tmp;
GValue *v;
tmp = get_stats_for_srtsock (caller->sock, is_sender);
tmp = get_stats_for_srtsock (srtobject, caller->sock);
gst_structure_set (tmp, "caller-address", G_TYPE_SOCKET_ADDRESS,
caller->sockaddr, NULL);