]> git.zerfleddert.de Git - record-dvb/blobdiff - record-dvb.c
implement (probably working) multicast
[record-dvb] / record-dvb.c
index 63102cfa3d4bd901d3aa9b7ca964cb18b325b192..b27ce74908192e938cf574bd2bce0c8d6cc211ec 100644 (file)
@@ -13,7 +13,7 @@
 #include "http.h"
 #include "mcast.h"
 
 #include "http.h"
 #include "mcast.h"
 
-#define CHUNKSIZE 8192
+#define CHUNKSIZE 1500
 
 void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
 {
 
 void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
 {
@@ -40,9 +40,9 @@ void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
        do {
                if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) {
                        /* TODO: Insert better connection-loss recovery here */
        do {
                if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) {
                        /* TODO: Insert better connection-loss recovery here */
-                       in = (*open_fn)(url);
+                       if ((in = (*open_fn)(url)) < 0)
+                               sleep(1);
                }
                }
-
                written = 0;
                do {
                        if ((i = write(out, buffer, bytes-written)) < 0) {
                written = 0;
                do {
                        if ((i = write(out, buffer, bytes-written)) < 0) {
Impressum, Datenschutz