From 81801e0df8154add73c86f5a536e4c0f668e4d05 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Wed, 11 Feb 2015 00:46:23 +0100 Subject: [PATCH] Also print number of TS discontinuities. --- reorderer.cpp | 7 +++++-- reorderer.h | 3 ++- tungre.cpp | 10 +++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/reorderer.cpp b/reorderer.cpp index 697f818..2374ffd 100644 --- a/reorderer.cpp +++ b/reorderer.cpp @@ -110,8 +110,11 @@ void Reorderer::check_ts_discontinuity(uint16_t proto, const string &data, bool int cc = pkt[3] & 0xf; if (has_payload) { int last_cc = ccs[pid]; - if (!silence && cc != ((last_cc + 1) & 0xf)) { - printf("Pid %d discontinuity (expected %d, got %d)\n", pid, (last_cc + 1) & 0xf, cc); + if (cc != ((last_cc + 1) & 0xf)) { + if (!silence) { + printf("Pid %d discontinuity (expected %d, got %d)\n", pid, (last_cc + 1) & 0xf, cc); + } + ++num_ts_discontinuities; } ccs[pid] = cc; } diff --git a/reorderer.h b/reorderer.h index 920c57c..77fda65 100644 --- a/reorderer.h +++ b/reorderer.h @@ -32,6 +32,7 @@ public: int get_reorders() const { return num_reorders; } int get_lost_packets() const { return num_lost_packets; } + int get_ts_discontinuities() const { return num_ts_discontinuities; } private: void check_ts_discontinuity(uint16_t proto, const std::string &data, bool silence); @@ -43,7 +44,7 @@ private: std::priority_queue, std::greater> packet_buffer; std::map ccs; - int num_reorders = 0, num_lost_packets = 0; + int num_reorders = 0, num_lost_packets = 0, num_ts_discontinuities = 0; }; #endif // !defined(_REORDERER_H) diff --git a/tungre.cpp b/tungre.cpp index 5ee81cb..fd5ef8f 100644 --- a/tungre.cpp +++ b/tungre.cpp @@ -37,7 +37,7 @@ int main(int argc, char **argv) int last_rcvd = 0, last_reorders = 0; int last_fec_recovered = 0, last_lost = 0; - int last_output = 0; + int last_output = 0, last_ts_discontinuities = 0; int last_sent = 0; timeval last_print; gettimeofday(&last_print, NULL); @@ -73,16 +73,20 @@ int main(int argc, char **argv) int reorders = tun_reorderer.get_reorders(); int lost = tun_reorderer.get_lost_packets(); int output = tun.get_sent_packets(); + int ts_discontinuities = tun_reorderer.get_ts_discontinuities(); int sent = gre.get_sent_packets(); - fprintf(stderr, "%5dp rcvd, %3dp FEC recovered, %4d reorders, %3dp lost, %5dp output. %5dp sent\n", + fprintf(stderr, "%5dp rcvd, %3dp FEC recovered, %4d reorders, %3dp lost, %5dp output, %3d TS discontinuities. %5dp sent\n", rcvd - last_rcvd, fec_recovered - last_fec_recovered, reorders - last_reorders, lost - last_lost, - output - last_output, sent - last_sent); + output - last_output, + ts_discontinuities - last_ts_discontinuities, + sent - last_sent); last_rcvd = rcvd; last_fec_recovered = fec_recovered; last_reorders = reorders; last_lost = lost; last_output = output; + last_ts_discontinuities = ts_discontinuities; last_sent = sent; last_print = now; } -- 2.39.2