This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-sdr@lists.osmocom.org/.
Wilson Waters osmocom-sdr-mail at alintech.com.auHi all,
I've created a simple little change for rtl_fm which outputs values of 0
(instead of nothing) when the output is squelched. Use the command
option "-E nullsquelch" to enable.
This is useful when live streaming output to icecast or similar which
requires a constant stream of data (such as
http://rtl-sdr.com/forum/viewtopic.php?f=7&t=141 or
http://www.windytan.com/2013/07/squelch-it-out.html).
Hopefully someone can merge this into the git repo, otherwise just patch
and build yourself.
Cheers,
Wilson
--
*Wilson Waters* | Software Engineer
*Alintech*
e: wilson.waters at alintech.com.au
w: www.alintech.com.au
-------------- next part --------------
diff --git a/src/rtl_fm.c b/src/rtl_fm.c
index e89e42d..4c314f7 100644
--- a/src/rtl_fm.c
+++ b/src/rtl_fm.c
@@ -131,7 +131,7 @@ struct demod_state
int downsample; /* min 1, max 256 */
int post_downsample;
int output_scale;
- int squelch_level, conseq_squelch, squelch_hits, terminate_on_squelch;
+ int squelch_level, conseq_squelch, squelch_hits, terminate_on_squelch, null_squelch;
int downsample_passes;
int comp_fir_size;
int custom_atan;
@@ -205,6 +205,7 @@ void usage(void)
"\t deemp: enable de-emphasis filter\n"
"\t direct: enable direct sampling\n"
"\t offset: enable offset tuning\n"
+ "\t nullsquelch: output null padding when squelched\n"
"\tfilename ('-' means stdout)\n"
"\t omitting the filename also uses stdout\n\n"
"Experimental options:\n"
@@ -812,6 +813,7 @@ static void *dongle_thread_fn(void *arg)
static void *demod_thread_fn(void *arg)
{
+ int i;
struct demod_state *d = arg;
struct output_state *o = d->output_target;
while (!do_exit) {
@@ -825,7 +827,9 @@ static void *demod_thread_fn(void *arg)
if (d->squelch_level && d->squelch_hits > d->conseq_squelch) {
d->squelch_hits = d->conseq_squelch + 1; /* hair trigger */
safe_cond_signal(&controller.hop, &controller.hop_m);
- continue;
+ if (!d->null_squelch) {
+ continue;
+ }
}
pthread_rwlock_wrlock(&o->rw);
memcpy(o->result, d->result, 2*d->result_len);
@@ -1106,6 +1110,8 @@ int main(int argc, char **argv)
dongle.direct_sampling = 1;}
if (strcmp("offset", optarg) == 0) {
dongle.offset_tuning = 1;}
+ if (strcmp("nullsquelch", optarg) == 0) {
+ demod.null_squelch = 1;}
break;
case 'F':
demod.downsample_passes = 1; /* truthy placeholder */