aboutsummaryrefslogtreecommitdiffstats
path: root/src/rtl_tcp.c
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2012-05-29 02:40:49 +0200
committerSteve Markgraf <steve@steve-m.de>2012-05-29 02:40:49 +0200
commit92d936568cd33e4f093abece3db10b596e0697d0 (patch)
treea2abe9a85d7ab9e015a4da6ec8f437a487f6078d /src/rtl_tcp.c
parentd08c4770abbd13ad8f474adc709adb20996662d5 (diff)
rtl_tcp: add parameter for changing number of buffers
This is useful for devices with low memory, e.g. routers with OpenWRT (decrease to 8 for example). Signed-off-by: Steve Markgraf <steve@steve-m.de>
Diffstat (limited to 'src/rtl_tcp.c')
-rw-r--r--src/rtl_tcp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/rtl_tcp.c b/src/rtl_tcp.c
index cee9036..6b63c0a 100644
--- a/src/rtl_tcp.c
+++ b/src/rtl_tcp.c
@@ -85,6 +85,7 @@ void usage(void)
"\t[-f frequency to tune to [Hz]]\n"
"\t[-g gain (default: 0 for auto)]\n"
"\t[-s samplerate in Hz (default: 2048000 Hz)]\n"
+ "\t[-b number of buffers (default: 32, set by library)]\n"
"\t[-d device index (default: 0)]\n");
exit(1);
}
@@ -308,7 +309,7 @@ int main(int argc, char **argv)
uint32_t frequency = 100000000, samp_rate = 2048000;
struct sockaddr_in local, remote;
int device_count;
- uint32_t dev_index = 0;
+ uint32_t dev_index = 0, buf_num = 0;
int gain = 0;
struct llist *curelem,*prev;
pthread_attr_t attr;
@@ -326,7 +327,7 @@ int main(int argc, char **argv)
struct sigaction sigact;
#endif
- while ((opt = getopt(argc, argv, "a:p:f:g:s:d:")) != -1) {
+ while ((opt = getopt(argc, argv, "a:p:f:g:s:b:d:")) != -1) {
switch (opt) {
case 'd':
dev_index = atoi(optarg);
@@ -346,6 +347,9 @@ int main(int argc, char **argv)
case 'p':
port = atoi(optarg);
break;
+ case 'b':
+ buf_num = atoi(optarg);
+ break;
default:
usage();
break;
@@ -474,7 +478,8 @@ int main(int argc, char **argv)
r = pthread_create(&command_thread, &attr, command_worker, NULL);
pthread_attr_destroy(&attr);
- rtlsdr_wait_async(dev, rtlsdr_callback, (void *)0);
+ r = rtlsdr_read_async(dev, rtlsdr_callback, (void *)0,
+ buf_num, 0);
closesocket(s);
if(!dead[0])