]> git.zerfleddert.de Git - record-dvb/commitdiff
don't call gettimeofday for every packet...
authormichael <michael>
Sat, 1 Jul 2006 21:56:31 +0000 (21:56 +0000)
committermichael <michael>
Sat, 1 Jul 2006 21:56:31 +0000 (21:56 +0000)
record-dvb.c

index 45d2fcb353c8888448e762b1749fdf1fb7d5f92a..bc47ecfe3b60d7f3ee0293658826ad91dcfdca7a 100644 (file)
 #include "mcast.h"
 
 #define CHUNKSIZE 1500
 #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;
 
 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;
        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);
        printf("Recording from %s for %d seconds...\n", url, duration);
 
        gettimeofday(&start, NULL);
+       curr = start;
 
        do {
                if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) {
 
        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);
 
                        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);
        } while (curr.tv_sec < start.tv_sec+duration);
 
        close(out);
Impressum, Datenschutz