From f1de74af9270235126b67e9507111df5752a3e5c Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Wed, 12 Dec 2012 18:45:53 -0500 Subject: core: add new options to GRC for file_meta_sink. Also updates gr_read_file_metadata to add a -D option that properly parses a detached header. --- gr-utils/src/python/gr_read_file_metadata | 10 +++++++--- grc/blocks/gr_file_meta_sink.xml | 28 ++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/gr-utils/src/python/gr_read_file_metadata b/gr-utils/src/python/gr_read_file_metadata index ba530ca54..efbf8d15d 100644 --- a/gr-utils/src/python/gr_read_file_metadata +++ b/gr-utils/src/python/gr_read_file_metadata @@ -26,7 +26,7 @@ from optparse import OptionParser from gnuradio import gr from gnuradio import parse_file_metadata -def main(filename): +def main(filename, detached=False): handle = open(filename, "rb") nheaders = 0 @@ -63,7 +63,9 @@ def main(filename): extra_info = parse_file_metadata.parse_extra_dict(extra, info, True) nheaders += 1 - nread += info['nbytes'] + parse_file_metadata.HEADER_LENGTH + info["extra_len"] + nread += parse_file_metadata.HEADER_LENGTH + info["extra_len"] + if(not detached): + nread += info['nbytes'] handle.seek(nread, 0) print "\n\n" @@ -73,6 +75,8 @@ if __name__ == "__main__": parser = OptionParser(conflict_handler="resolve", usage=usage, description=description) + parser.add_option("-D", "--detached", action="store_true", default=False, + help="Used if header is detached.") (options, args) = parser.parse_args () if(len(args) < 1): @@ -80,4 +84,4 @@ if __name__ == "__main__": sys.exit(1) filename = args[0] - main(filename) + main(filename, options.detached) diff --git a/grc/blocks/gr_file_meta_sink.xml b/grc/blocks/gr_file_meta_sink.xml index e6f5f2bd6..ba9bf4ee1 100644 --- a/grc/blocks/gr_file_meta_sink.xml +++ b/grc/blocks/gr_file_meta_sink.xml @@ -8,7 +8,7 @@ File Meta Sink gr_file_meta_sink from gnuradio import gr - gr.file_meta_sink($type.size*$vlen, $file, $samp_rate, $rel_rate, $type.dtype, $type.cplx) + gr.file_meta_sink($type.size*$vlen, $file, $samp_rate, $rel_rate, $type.dtype, $type.cplx, $max_seg_size, $extra_dict, $detached) self.$(id).set_unbuffered($unbuffered) set_unbuffered($unbuffered) open($file) @@ -77,6 +77,31 @@ self.$(id).set_unbuffered($unbuffered) int + Max Seg. Size + max_seg_size + 1000000 + int + + + Extra Dict. + extra_dict + "" + string + + + Detached + detached + False + bool + + + Unbuffered unbuffered False @@ -90,7 +115,6 @@ self.$(id).set_unbuffered($unbuffered) True - $vlen > 0 in -- cgit