X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/record-dvb/blobdiff_plain/b973e875ef2e7f45e9eee04c04805fc817f0ff05..9fbd8130d45c8218eaea28d13f7bf53de0bffa39:/record-dvb.c diff --git a/record-dvb.c b/record-dvb.c index a289874..bc47ecf 100644 --- a/record-dvb.c +++ b/record-dvb.c @@ -14,11 +14,12 @@ #include "mcast.h" #define CHUNKSIZE 1500 +#define GTOD_INTERVAL 100 void record(int(*open_fn)(char *), char *url, char *outfile, int duration) { struct timeval start, curr; - int bytes, written; + int bytes, written, count = 0; char buffer[CHUNKSIZE]; int i; int in, out; @@ -36,6 +37,7 @@ void record(int(*open_fn)(char *), char *url, char *outfile, int duration) printf("Recording from %s for %d seconds...\n", url, duration); gettimeofday(&start, NULL); + curr = start; do { if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) { @@ -54,7 +56,10 @@ void record(int(*open_fn)(char *), char *url, char *outfile, int duration) written += i; } while(written < bytes); - gettimeofday(&curr, NULL); + count++; + + if (!(count % GTOD_INTERVAL)) + gettimeofday(&curr, NULL); } while (curr.tv_sec < start.tv_sec+duration); close(out); @@ -71,7 +76,7 @@ int main(int argc, char **argv) if (argc == 4) { url = argv[1]; - duration = atol(argv[2])*60; + duration = atoi(argv[2])*60; outfile = argv[3]; } else { fprintf(stderr,"Syntax: %s URL duration_in_minutes outfile\n", argv[0]);