]> git.sesse.net Git - greproxy/commitdiff
Also print number of TS discontinuities.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 10 Feb 2015 23:46:23 +0000 (00:46 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Wed, 11 Feb 2015 00:02:19 +0000 (01:02 +0100)
reorderer.cpp
reorderer.h
tungre.cpp

index 697f8189d3a05da187d0fb74ed8149f86f50d19c..2374ffd9dc5f3930b6d72093d9d7394fe71c68e7 100644 (file)
@@ -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;
                        }
index 920c57c50a9af6470190f88ecc5550a38b1eedc0..77fda65a43b70475296a1833a60dc21b3f762708 100644 (file)
@@ -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<GREPacket, std::vector<GREPacket>, std::greater<GREPacket>> packet_buffer;
        std::map<int, int> 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)
index 5ee81cb131d8c087bcf3a07a48cb11271ed5f3cc..fd5ef8f973383d0a398a5f8cf348cd7d876d0118 100644 (file)
@@ -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;
                }