<div dir="auto">Gotcha. This issue made me think otherwise. Seems like these guys (gstreamer devs) are getting way more stats than me:<div dir="auto"><br></div><div dir="auto"><a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/889">https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/889</a><br></div><div dir="auto"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020, 11:29 PM Matthew Waters <<a href="mailto:ystreet00@gmail.com">ystreet00@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>No, you don't 'need' to do anything for
rtpbin to expose the stats, they just aren't always exposed in the
webrtcbin stats as the webrtcbin stats are incomplete.<br>
<br>
Cheers<br>
-Matt<br>
<br>
On 7/10/20 5:06 pm, Faraz Khan wrote:<br>
</div>
<blockquote type="cite">
<div dir="auto">Oh interesting. Seemed like rtpinputstats (from
the RR reports) were already baked in. I'm specifically looking
for fraction lost and interarrival jitter. Do I have to install
a signal for rtcp packets and extracts those reports myself?
<div dir="auto"><br>
</div>
<div dir="auto">For some reason I thought rtpbin would do this
for me.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Thanks!</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020, 10:41 PM
Matthew Waters <<a href="mailto:ystreet00@gmail.com" rel="noreferrer noreferrer" target="_blank">ystreet00@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>Various information provided by the get-stats signal
are incomplete. You may have to implement some of the
information you need inside webrtcbin itself.<br>
<br>
Cheers<br>
-Matt<br>
<br>
On 7/10/20 3:25 pm, Faraz Khan wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi everyone,
<div>Gstreamer noob here - but have worked on C/C++
audio/video apps for many years now. I have
successfully established a webrtc connection with
electron as the receiver (and gstreamer as send-only)
and am now looking to implement some sort of
simplistic bitrate control and also just to understand
how gstreamer works.</div>
<div><br>
</div>
<div>My first attempt was to get webrtc peerconnection
stats. I did:</div>
<div><br>
</div>
<div>GstPromise *p =
gst_promise_new_with_change_func(_on_stats, NULL,
NULL);<br>
g_signal_emit_by_name(peer->webrtcbin, "get-stats",
NULL, p);<br>
</div>
<div><br>
</div>
<div>And decode them using:</div>
<div><br>
</div>
<div>gboolean on_stats_iter(GQuark field, const GValue *
value, gpointer pfx) {<br>
gchar *str = gst_value_serialize (value);<br>
g_print ("%15s: %s", g_quark_to_string (field),
str);<br>
std::cout << std::endl;<br>
g_free (str);<br>
return TRUE;<br>
}<br>
<br>
static void _on_stats (GstPromise * promise, gpointer
user_data) {<br>
const GstStructure *reply =
gst_promise_get_reply(promise);<br>
gst_structure_foreach(reply, on_stats_iter,
(gpointer)reply);<br>
}<br>
</div>
<div><br>
</div>
<div>And this generates: </div>
<div>peer-connection-stats: "peer-connection\,\
data-channels-opened\=\(uint\)0\,\
data-channels-closed\=\(uint\)0\,\
data-channels-requested\=\(uint\)0\,\
data-channels-accepted\=\(uint\)0\,\
type\=\(GstWebRTCStatsType\)GST_WEBRTC_STATS_PEER_CONNECTION\,\
timestamp\=\(double\)180230225.79899999\,\
id\=\(string\)peer-connection-stats\;"<br>
codec-stats-sink_0: "codec\,\
type\=\(GstWebRTCStatsType\)GST_WEBRTC_STATS_CODEC\,\
timestamp\=\(double\)180230225.79899999\,\
id\=\(string\)codec-stats-sink_0\,\
payload-type\=\(uint\)96\,\
clock-rate\=\(uint\)90000\,\
ssrc\=\(uint\)2002222005\;"<br>
transport-stats_webrtcdtlstransport0: "transport\,\
type\=\(GstWebRTCStatsType\)GST_WEBRTC_STATS_TRANSPORT\,\
timestamp\=\(double\)180230225.79899999\,\
id\=\(string\)transport-stats_webrtcdtlstransport0\;"<br>
ice-candidate-pair_webrtcnicetransport0: "transport\,\
type\=\(GstWebRTCStatsType\)GST_WEBRTC_STATS_TRANSPORT\,\
timestamp\=\(double\)180230225.79899999\,\
id\=\(string\)ice-candidate-pair_webrtcnicetransport0\;"<br>
codec-stats-sink_1: "codec\,\
type\=\(GstWebRTCStatsType\)GST_WEBRTC_STATS_CODEC\,\
timestamp\=\(double\)180230225.79899999\,\
id\=\(string\)codec-stats-sink_1\,\
payload-type\=\(uint\)97\,\
clock-rate\=\(uint\)48000\,\
ssrc\=\(uint\)1224562656\;"<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>This has the correct SSRC and codec info - but
missing RTP information and the data channel stats are
incorrect (I do have a open and working data channel).</div>
<div><br>
</div>
<div>How does one proceed to debug this? What am I
missing?</div>
<div><br>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org" rel="noreferrer noreferrer noreferrer" target="_blank">gstreamer-devel@lists.freedesktop.org</a>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote></div>