diff options
Diffstat (limited to 'src/gmr1_rx_live.c')
-rw-r--r-- | src/gmr1_rx_live.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gmr1_rx_live.c b/src/gmr1_rx_live.c index 808db89..f0f58a5 100644 --- a/src/gmr1_rx_live.c +++ b/src/gmr1_rx_live.c @@ -29,6 +29,7 @@ #include <osmocom/core/gsmtap_util.h> #include <osmocom/gmr1/sdr/fcch.h> +#include <osmocom/gmr1/sdr/metadata.h> #include "rtfwk/common.h" #include "rtfwk/sampbuf.h" @@ -96,6 +97,24 @@ int main(int argc, char *argv[]) as->chans[i].filename = d+1; } + /* Create meta data */ + for (i=0; i<as->n_chans; i++) + { + char *d; + int l; + + d = strrchr(as->chans[i].filename, '.'); + l = d ? (d - as->chans[i].filename) : strlen(as->chans[i].filename); + + d = malloc(l + 6); + memcpy(&d[0], as->chans[i].filename, l); + memcpy(&d[l], ".meta", 6); + + as->chans[i].md = gmr1_md_open(d, as->chans[i].filename, as->sps * GMR1_SYM_RATE); + + free(d); + } + /* Create all the sources */ for (i=0; i<as->n_chans; i++) { struct sample_actor *sa; @@ -165,6 +184,12 @@ int main(int argc, char *argv[]) /* Done ! */ rv = 0; + /* Flush metadata */ + for (i=0; i<as->n_chans; i++) + { + gmr1_md_close(as->chans[i].md); + } + /* Clean up */ err: sbuf_free(as->buf); |