[vlc-commits] stats: factor packets counter code

Rémi Denis-Courmont git at videolan.org
Tue Dec 12 19:36:58 CET 2017


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Dec 12 19:59:27 2017 +0200| [db65409227a3fb0bb8f8cce2824a339fefc5f806] | committer: Rémi Denis-Courmont

stats: factor packets counter code

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=db65409227a3fb0bb8f8cce2824a339fefc5f806
---

 src/input/access.c         | 2 --
 src/input/input_internal.h | 2 +-
 src/input/stats.c          | 7 +++++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/input/access.c b/src/input/access.c
index 730a91454a..1d4b5ffeef 100644
--- a/src/input/access.c
+++ b/src/input/access.c
@@ -204,7 +204,6 @@ static block_t *AStreamReadBlock(stream_t *s, bool *restrict eof)
         if (stats != NULL)
         {
             vlc_mutex_lock(&stats->lock);
-            stats->read_packets++;
             input_rate_Add(&stats->input_bitrate, block->i_buffer);
             vlc_mutex_unlock(&stats->lock);
         }
@@ -233,7 +232,6 @@ static ssize_t AStreamReadStream(stream_t *s, void *buf, size_t len)
         if (stats != NULL)
         {
             vlc_mutex_lock(&stats->lock);
-            stats->read_packets++;
             input_rate_Add(&stats->input_bitrate, val);
             vlc_mutex_unlock(&stats->lock);
         }
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index d82e82623d..2803c9f006 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -268,6 +268,7 @@ void input_item_node_PostAndDelete( input_item_node_t *p_node );
 /* stats.c */
 typedef struct input_rate_t
 {
+    uintmax_t updates;
     uintmax_t value;
     struct
     {
@@ -278,7 +279,6 @@ typedef struct input_rate_t
 
 struct input_stats {
     vlc_mutex_t lock;
-    uintmax_t read_packets;
     input_rate_t input_bitrate;
     input_rate_t demux_bitrate;
     uintmax_t demux_corrupted;
diff --git a/src/input/stats.c b/src/input/stats.c
index 059434a287..118cccb67a 100644
--- a/src/input/stats.c
+++ b/src/input/stats.c
@@ -36,6 +36,7 @@
  */
 static void input_rate_Init(input_rate_t *rate)
 {
+    rate->updates = 0;
     rate->value = 0;
     rate->samples[0].date = VLC_TS_INVALID;
     rate->samples[1].date = VLC_TS_INVALID;
@@ -56,9 +57,10 @@ struct input_stats *input_stats_Create(void)
     if (unlikely(stats == NULL))
         return NULL;
 
-    memset(stats, 0, sizeof (*stats));
     input_rate_Init(&stats->input_bitrate);
     input_rate_Init(&stats->demux_bitrate);
+    stats->demux_corrupted = 0;
+    stats->demux_discontinuity = 0;
     atomic_init(&stats->decoded_audio, 0);
     atomic_init(&stats->decoded_video, 0);
     atomic_init(&stats->played_abuffers, 0);
@@ -80,7 +82,7 @@ void input_stats_Compute(struct input_stats *stats, input_stats_t *st)
     vlc_mutex_lock(&stats->lock);
 
     /* Input */
-    st->i_read_packets = stats->read_packets;
+    st->i_read_packets = stats->input_bitrate.updates;
     st->i_read_bytes = stats->input_bitrate.value;
     st->f_input_bitrate = stats_GetRate(&stats->input_bitrate);
     st->i_demux_read_bytes = stats->demux_bitrate.value;
@@ -114,6 +116,7 @@ void input_stats_Compute(struct input_stats *stats, input_stats_t *st)
  */
 void input_rate_Add(input_rate_t *counter, uintmax_t val)
 {
+    counter->updates++;
     counter->value += val;
 
     /* Ignore samples within a second of another */



More information about the vlc-commits mailing list