+ if (is_sender)
+ gst_structure_set (s,
+ /* number of sent data packets, including retransmissions */
+ "packets-sent", G_TYPE_INT64, stats.pktSent,
+ /* number of lost packets (sender side) */
+ "packets-sent-lost", G_TYPE_INT, stats.pktSndLoss,
+ /* number of retransmitted packets */
+ "packets-retransmitted", G_TYPE_INT, stats.pktRetrans,
+ /* number of received ACK packets */
+ "packet-ack-received", G_TYPE_INT, stats.pktRecvACK,
+ /* number of received NAK packets */
+ "packet-nack-received", G_TYPE_INT, stats.pktRecvNAK,
+ /* time duration when UDT is sending data (idle time exclusive) */
+ "send-duration-us", G_TYPE_INT64, stats.usSndDuration,
+ /* number of sent data bytes, including retransmissions */
+ "bytes-sent", G_TYPE_UINT64, stats.byteSent,
+ /* number of retransmitted bytes */
+ "bytes-retransmitted", G_TYPE_UINT64, stats.byteRetrans,
+ /* number of too-late-to-send dropped bytes */
+ "bytes-sent-dropped", G_TYPE_UINT64, stats.byteSndDrop,
+ /* number of too-late-to-send dropped packets */
+ "packets-sent-dropped", G_TYPE_INT, stats.pktSndDrop,
+ /* sending rate in Mb/s */
+ "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,
+ "packets-received", G_TYPE_INT64, stats.pktRecvTotal,
+ "packets-received-lost", G_TYPE_INT, stats.pktRcvLossTotal,
+ /* number of sent ACK packets */
+ "packet-ack-sent", G_TYPE_INT, stats.pktSentACK,
+ /* number of sent NAK packets */
+ "packet-nack-sent", G_TYPE_INT, stats.pktSentNAK,
+ "bytes-received", G_TYPE_UINT64, stats.byteRecvTotal,
+ "bytes-received-lost", G_TYPE_INT, stats.byteRcvLossTotal,
+ "receive-rate-mbps", G_TYPE_DOUBLE, stats.mbpsRecvRate,
+ "negotiated-latency-ms", G_TYPE_INT, stats.msRcvTsbPdDelay, NULL);
+