* RTCReceivedStreamStats supported fields (https://w3c.github.io/webrtc-stats/#receivedrtpstats-dict*)
*
* "packets-received" G_TYPE_UINT64 number of packets received (only for local inbound)
- * "packets-lost" G_TYPE_UINT64 number of packets lost
+ * "packets-lost" G_TYPE_INT64 number of packets lost
* "packets-discarded" G_TYPE_UINT64 number of packets discarded
* "packets-repaired" G_TYPE_UINT64 number of packets repaired
* "jitter" G_TYPE_DOUBLE packet jitter measured in seconds
/* RTCReceivedRtpStreamStats */
if (gst_structure_get_int (source_stats, "rb-packetslost", &lost))
- gst_structure_set (r_in, "packets-lost", G_TYPE_INT, lost, NULL);
+ gst_structure_set (r_in, "packets-lost", G_TYPE_INT64, (gint64) lost, NULL);
if (clock_rate && gst_structure_get_uint (source_stats, "rb-jitter", &jitter))
gst_structure_set (r_in, "jitter", G_TYPE_DOUBLE,
if (gst_structure_get_uint64 (source_stats, "packets-received", &packets))
gst_structure_set (in, "packets-received", G_TYPE_UINT64, packets, NULL);
- if (jb_stats)
- gst_structure_set (in, "packets-lost", G_TYPE_UINT64, jb_lost, NULL);
+ if (jb_stats) {
+ gint64 packets_lost = jb_lost > G_MAXINT64 ?
+ G_MAXINT64 : (gint64) jb_lost;
+ gst_structure_set (in, "packets-lost", G_TYPE_INT64, packets_lost, NULL);
+ }
if (gst_structure_get_uint (source_stats, "jitter", &jitter))
gst_structure_set (in, "jitter", G_TYPE_DOUBLE,
CLOCK_RATE_VALUE_TO_SECONDS (jitter, clock_rate), NULL);
validate_inbound_rtp_stats (const GstStructure * s, const GstStructure * stats)
{
guint ssrc, fir, pli, nack;
- gint packets_lost;
+ gint64 packets_lost;
guint64 packets_received, bytes_received;
double jitter;
gchar *remote_id;
fail_unless (gst_structure_get (s, "bytes-received", G_TYPE_UINT64,
&bytes_received, NULL));
fail_unless (gst_structure_get (s, "jitter", G_TYPE_DOUBLE, &jitter, NULL));
- fail_unless (gst_structure_get (s, "packets-lost", G_TYPE_INT, &packets_lost,
- NULL));
+ fail_unless (gst_structure_get (s, "packets-lost", G_TYPE_INT64,
+ &packets_lost, NULL));
fail_unless (gst_structure_get (s, "remote-id", G_TYPE_STRING, &remote_id,
NULL));
fail_unless (gst_structure_get (stats, remote_id, GST_TYPE_STRUCTURE, &remote,
const GstStructure * stats)
{
guint ssrc;
- gint packets_lost;
+ gint64 packets_lost;
double jitter, rtt;
gchar *local_id;
GstStructure *local;
fail_unless (gst_structure_get (s, "ssrc", G_TYPE_UINT, &ssrc, NULL));
fail_unless (gst_structure_get (s, "jitter", G_TYPE_DOUBLE, &jitter, NULL));
- fail_unless (gst_structure_get (s, "packets-lost", G_TYPE_INT, &packets_lost,
- NULL));
+ fail_unless (gst_structure_get (s, "packets-lost", G_TYPE_INT64,
+ &packets_lost, NULL));
fail_unless (gst_structure_get (s, "round-trip-time", G_TYPE_DOUBLE, &rtt,
NULL));
fail_unless (gst_structure_get (s, "local-id", G_TYPE_STRING, &local_id,