X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/record-dvb/blobdiff_plain/fbc24ab023eb1ae6572fccff3fa1140c3e01c8b7..cc319f8b578acbc41ef1282c064a8041b196d0ee:/dump-stream.c diff --git a/dump-stream.c b/dump-stream.c new file mode 100644 index 0000000..1cbaad2 --- /dev/null +++ b/dump-stream.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mcast.h" + +#define CHUNKSIZE 1500 + +int main(int argc, char **argv) +{ + char *url; + int bytes, written, i; + int in; + char buffer[CHUNKSIZE]; + + if (argc == 2) { + url = argv[1]; + } else { + fprintf(stderr,"Syntax: %s URL\n", argv[0]); + exit(EXIT_FAILURE); + } + + if ((in = open_mcast(url)) < 0) { + fprintf(stderr,"Can't open url %s!\n",url); + exit(EXIT_FAILURE); + } + + while(1) { + if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) { + perror("recv"); + exit(EXIT_FAILURE); + } + + written = 0; + do { + if ((i = write(STDOUT_FILENO, buffer, bytes-written)) < 0) { + perror("write"); + exit(EXIT_FAILURE); + } + written += i; + } while(written < bytes); + } + + close(in); + + return EXIT_SUCCESS; +}