From: Andreas Ă–man Date: Wed, 21 Nov 2007 12:44:25 +0000 (+0000) Subject: add per stream stats X-Git-Tag: 2.12~1375 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b2dbbf9dafc97ee6fc5d484e227b61708836da3b;p=thirdparty%2Ftvheadend.git add per stream stats --- diff --git a/pes.c b/pes.c index dff7cc364..659183855 100644 --- a/pes.c +++ b/pes.c @@ -82,6 +82,8 @@ pes_packet_input(th_transport_t *t, th_stream_t *st, uint8_t *buf, size_t len) th_pkt_t *pkt; AVRational mpeg_tc = {1, 90000}; + avgstat_add(&st->st_rate, len, dispatch_clock); + hdr = getu8(buf, len); flags = getu8(buf, len); hlen = getu8(buf, len); diff --git a/transports.c b/transports.c index 35d60a794..18041de42 100644 --- a/transports.c +++ b/transports.c @@ -374,5 +374,7 @@ transport_add_stream(th_transport_t *t, int pid, tv_streamtype_t type) TAILQ_INIT(&st->st_durationq); TAILQ_INIT(&st->st_pktq); + avgstat_init(&st->st_rate, 10); + avgstat_init(&st->st_cc_errors, 10); return st; } diff --git a/tsdemux.c b/tsdemux.c index 384ebd9e8..07b263aae 100644 --- a/tsdemux.c +++ b/tsdemux.c @@ -122,6 +122,7 @@ ts_recv_packet(th_transport_t *t, int pid, uint8_t *tsb) if(st->st_cc_valid && cc != st->st_cc) { /* Incorrect CC */ avgstat_add(&t->tht_cc_errors, 1, dispatch_clock); + avgstat_add(&st->st_cc_errors, 1, dispatch_clock); err = 1; } st->st_cc_valid = 1; diff --git a/tvhead.h b/tvhead.h index 48059c574..4b0bdc609 100644 --- a/tvhead.h +++ b/tvhead.h @@ -247,6 +247,9 @@ typedef struct th_stream { uint8_t st_cc; /* Last CC */ uint8_t st_cc_valid; /* Is CC valid at all? */ + avgstat_t st_cc_errors; + avgstat_t st_rate; + tv_streamtype_t st_type; int st_demuxer_fd; int st_index;