diff --git a/apps/tscheck.c b/apps/tscheck.c index 2a02648..ea132c8 100644 --- a/apps/tscheck.c +++ b/apps/tscheck.c @@ -25,49 +25,43 @@ uint8_t cc[8192] = { 0 }; void proc_ts(int i, uint8_t *buf) { - uint16_t pid=0x1fff&((buf[1]<<8)|buf[2]); - uint8_t ccin = buf[3] & 0x1F; - - if( buf[0] == 0x47 && (buf[1] & 0x80) == 0) - { - if( pid != 8191 ) - { - if( ccin != 0 ) - { - if( cc[pid] != 0 ) - { - // TODO: 1 repetition allowed - if( ( ccin & 0x10 ) != 0 && (((cc[pid] + 1) & 0x0F) != (ccin & 0x0F)) ) - cc_errors += 1; - } - cc[pid] = ccin; - } - payload_packets += 1; - } - } - else - packet_errors += 1; - - if( (packets & 0x3FFF ) == 0) - { - printf("%s Packets: %12u non null %12u, errors: %12u, CC errors: %12u%s", line_start, packets, payload_packets, packet_errors, cc_errors, line_end); - fflush(stdout); - } - - packets += 1; + uint16_t pid= 0x1fff& ((buf[1] << 8) | buf[2]); + uint8_t ccin = buf[3] & 0x1f; + + if( buf[0] == 0x47 && (buf[1] & 0x80) == 0) { + if( pid != 8191 ) { + if (ccin & 0x10) { + if( cc[pid] != 0 ) { + // TODO: 1 repetition allowed + if ((((cc[pid] + 1) & 0x0F) != (ccin & 0x0F)) ) + cc_errors += 1; + } + cc[pid] = ccin; + } + payload_packets += 1; + } + } else + packet_errors += 1; + + if( (packets & 0x3FFF ) == 0) { + printf("%s Packets: %12u non null %12u, errors: %12u, CC errors: %12u%s", + line_start, packets, payload_packets, packet_errors, cc_errors, line_end); + fflush(stdout); + } + packets += 1; } #define TSBUFSIZE (100*188) void citest(char* n) { - uint8_t *buf; + uint8_t *buf; uint8_t id; int i, nts; int len; int ts=open(n, O_RDONLY); buf=(uint8_t *)malloc(TSBUFSIZE); - + while(1) { len=read(ts, buf, TSBUFSIZE); @@ -90,20 +84,20 @@ void citest(char* n) int main(int argc, char* argv[]) { - if( argc < 2 ) - { - printf("tscheck | []\n"); - exit(0); - } - if( argc > 2 ) - { - int line = atoi(argv[2]); - if( line >= 0 && line < 64 ) - { - snprintf(line_start,sizeof(line_start)-1,"\0337\033[%d;0H",line); - strncpy(line_end,"\0338",sizeof(line_end)-1); - } - } + if( argc < 2 ) + { + printf("tscheck | []\n"); + exit(0); + } + if( argc > 2 ) + { + int line = atoi(argv[2]); + if( line >= 0 && line < 64 ) + { + snprintf(line_start,sizeof(line_start)-1,"\0337\033[%d;0H",line); + strncpy(line_end,"\0338",sizeof(line_end)-1); + } + } citest(argv[1]); }