diff --git a/ChangeLog b/ChangeLog index f1d4791925..551bfeb1e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-12-29 Michael Smith + + * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render), + (gst_multiudpsink_remove), (gst_multiudpsink_get_stats): + * gst/udp/gstmultiudpsink.h: + Track packets sent per client in addition to bytes sent; provide + this info through get-stats signal + 2005-12-29 Tim-Philipp Müller * gst/auparse/gstauparse.c: (gst_au_parse_dispose): diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index 5883e52947..ed9be9e1b2 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -228,6 +228,7 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) } } else { client->bytes_sent += ret; + client->packets_sent++; break; } } @@ -465,14 +466,20 @@ gst_multiudpsink_get_stats (GstMultiUDPSink * sink, const gchar * host, GValue value = { 0 }; - /* Result is a value array of (bytes_sent, connect_time, disconnect_time) */ - result = g_value_array_new (3); + /* Result is a value array of (bytes_sent, packets_sent, + * connect_time, disconnect_time), all as uint64 */ + result = g_value_array_new (4); g_value_init (&value, G_TYPE_UINT64); g_value_set_uint64 (&value, client->bytes_sent); result = g_value_array_append (result, &value); g_value_unset (&value); + g_value_init (&value, G_TYPE_UINT64); + g_value_set_uint64 (&value, client->packets_sent); + result = g_value_array_append (result, &value); + g_value_unset (&value); + g_value_init (&value, G_TYPE_UINT64); g_value_set_uint64 (&value, client->connect_time); result = g_value_array_append (result, &value); diff --git a/gst/udp/gstmultiudpsink.h b/gst/udp/gstmultiudpsink.h index e8cbf8f929..a9c84e0550 100644 --- a/gst/udp/gstmultiudpsink.h +++ b/gst/udp/gstmultiudpsink.h @@ -60,6 +60,7 @@ typedef struct { /* Per-client stats */ guint64 bytes_sent; + guint64 packets_sent; guint64 connect_time; guint64 disconnect_time; } GstUDPClient;