The patch number 1215 was added via Christoph Pfister <[EMAIL PROTECTED]> to http://linuxtv.org/hg/dvb-apps master development tree.
If anyone has any objections, please let us know by sending a message to: [EMAIL PROTECTED] ------ gnutv: make dvr buffer size configurable patch by Andrea http://linuxtv.org/pipermail/linux-dvb/2008-July/027177.html --- util/gnutv/gnutv.c | 12 +++++++++++- util/gnutv/gnutv_data.c | 18 +++++++++++++++++- util/gnutv/gnutv_data.h | 2 +- 3 files changed, 29 insertions(+), 3 deletions(-) diff -r 363d557af25b -r 16a88623f648 util/gnutv/gnutv.c --- a/util/gnutv/gnutv.c Fri Jul 18 23:23:07 2008 +0200 +++ b/util/gnutv/gnutv.c Fri Jul 18 23:35:01 2008 +0200 @@ -66,6 +66,7 @@ void usage(void) " * C-MULTI - Big Dish - Multipoint LNBf, 3700 to 4200 MHz,\n" " Dual LO, H:5150MHz, V:5750MHz.\n" " * One of the sec definitions from the secfile if supplied\n" + " -buffer <size> Custom DVR buffer size\n" " -out decoder Output to hardware decoder (default)\n" " decoderabypass Output to hardware decoder using audio bypass\n" " dvr Output stream to dvr device\n" @@ -124,6 +125,7 @@ int main(int argc, char *argv[]) struct gnutv_ca_params gnutv_ca_params; int ffaudiofd = -1; int usertp = 0; + int buffer_size = 0; while(argpos != argc) { if (!strcmp(argv[argpos], "-h")) { @@ -166,6 +168,14 @@ int main(int argc, char *argv[]) if ((argc - argpos) < 2) usage(); secid = argv[argpos+1]; + argpos+=2; + } else if (!strcmp(argv[argpos], "-buffer")) { + if ((argc - argpos) < 2) + usage(); + if (sscanf(argv[argpos+1], "%i", &buffer_size) != 1) + usage(); + if (buffer_size < 0) + usage(); argpos+=2; } else if (!strcmp(argv[argpos], "-out")) { if ((argc - argpos) < 2) @@ -320,7 +330,7 @@ int main(int argc, char *argv[]) gnutv_dvb_start(&gnutv_dvb_params); // start the data stuff - gnutv_data_start(output_type, ffaudiofd, adapter_id, demux_id, outfile, outif, outaddrs, usertp); + gnutv_data_start(output_type, ffaudiofd, adapter_id, demux_id, buffer_size, outfile, outif, outaddrs, usertp); } // the UI diff -r 363d557af25b -r 16a88623f648 util/gnutv/gnutv_data.c --- a/util/gnutv/gnutv_data.c Fri Jul 18 23:23:07 2008 +0200 +++ b/util/gnutv/gnutv_data.c Fri Jul 18 23:35:01 2008 +0200 @@ -77,7 +77,7 @@ static int pid_fds_count = 0; static int pid_fds_count = 0; void gnutv_data_start(int _output_type, - int ffaudiofd, int _adapter_id, int _demux_id, + int ffaudiofd, int _adapter_id, int _demux_id, int buffer_size, char *outfile, char* outif, struct addrinfo *_outaddrs, int _usertp) { @@ -114,6 +114,14 @@ void gnutv_data_start(int _output_type, exit(1); } + // optionally set dvr buffer size + if (buffer_size > 0) { + if (dvbdemux_set_buffer(dvrfd, buffer_size) != 0) { + fprintf(stderr, "Failed to set DVR buffer size\n"); + exit(1); + } + } + pthread_create(&outputthread, NULL, fileoutputthread_func, NULL); break; @@ -140,6 +148,14 @@ void gnutv_data_start(int _output_type, if (dvrfd < 0) { fprintf(stderr, "Failed to open DVR device\n"); exit(1); + } + + // optionally set dvr buffer size + if (buffer_size > 0) { + if (dvbdemux_set_buffer(dvrfd, buffer_size) != 0) { + fprintf(stderr, "Failed to set DVR buffer size\n"); + exit(1); + } } pthread_create(&outputthread, NULL, udpoutputthread_func, NULL); diff -r 363d557af25b -r 16a88623f648 util/gnutv/gnutv_data.h --- a/util/gnutv/gnutv_data.h Fri Jul 18 23:23:07 2008 +0200 +++ b/util/gnutv/gnutv_data.h Fri Jul 18 23:35:01 2008 +0200 @@ -26,7 +26,7 @@ #include <netdb.h> extern void gnutv_data_start(int output_type, - int ffaudiofd, int adapter_id, int demux_id, + int ffaudiofd, int adapter_id, int demux_id, int buffer_size, char *outfile, char* outif, struct addrinfo *outaddrs, int usertp); extern void gnutv_data_stop(void); --- Patch is available at: http://linuxtv.org/hg/dvb-apps/rev/16a88623f648b41bd615fd53ff5510fff3f0c1fe _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits