chiark / gitweb /
README, debian/control: Deprecate `sox' support.
[disorder] / clients / playrtp-log
1 #! /usr/bin/perl -w
2 #
3 # This file is part of DisOrder.
4 # Copyright (C) 2007 Richard Kettlewell
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19 use strict;
20
21 our $last;
22 my %start = ();
23 my %end = ();
24 while(<>) {
25     if(/sequence (\d+) timestamp (\w+) length (\w+) end (\w+)/) {
26         my $seq = $1;
27         my $timestamp = hex($2);
28         my $length = hex($3);
29         my $end = hex($4);
30
31         if(defined $last) {
32             if($seq < $last) {
33                 print "$seq < $last\n";
34             } elsif($seq != $last + 1) {
35                 printf "%u when %u expected, missed %d\n",
36                 $seq, $last + 1, $seq - $last;
37             }
38         }
39         if(exists $start{$seq}) {
40             print "$seq: duplicate";
41         }
42         $start{$seq} = $timestamp;
43         $end{$seq} = $end;
44         if(exists $start{$seq-1}) {
45             if($end{$seq-1} != $start{$seq}) {
46                 printf "%u ends at %x but %u starts at %x (delta=%d)\n",
47                 $seq-1, $end{$seq-1}, $seq, $start{$seq},
48                 $start{$seq}-$end{$seq-1};
49             }
50         }
51
52
53         $last = $seq;
54     }
55 }