[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