diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-11-24 19:09:02 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2012-11-24 19:09:02 -0500 |
commit | 9dc8f8b18043e71b50b3a254cb52bf355e97e6fa (patch) | |
tree | f1a00dc48cecc25ca2fbc57aa0267bb40871ac63 /gr-utils/src | |
parent | 54c23abf9b9703b8d52704fa01b9d6069d9edf91 (diff) |
core: Update file_meta_sink to inject headers into data stream.
When a tag with updated metadata information is received, close out the previous header (by setting the segment size) and create a new header with the new data. Specifically for sample rate and time stamps. Will be useful for extra_dict when implemented.
Diffstat (limited to 'gr-utils/src')
-rw-r--r-- | gr-utils/src/python/gr_read_file_metadata | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/gr-utils/src/python/gr_read_file_metadata b/gr-utils/src/python/gr_read_file_metadata index 657ad7c2b5..47109aead2 100644 --- a/gr-utils/src/python/gr_read_file_metadata +++ b/gr-utils/src/python/gr_read_file_metadata @@ -29,19 +29,28 @@ from gnuradio import parse_file_metadata def main(filename): handle = open(filename, "rb") - # just read out header bytes - header_str = handle.read(parse_file_metadata.HEADER_LENGTH) - - # Convert from string to PMT (should be a dictionary) - try: - header = gr.pmt_deserialize_str(header_str) - except RuntimeError: - sys.stderr.write("Could not deserialize header: invalid or corrupt data file.\n") - sys.exit(1) - #gr.pmt_print(header) + nread = 0 + while(True): + # read out next header bytes + hdr_start = handle.tell() + header_str = handle.read(parse_file_metadata.HEADER_LENGTH) + if(len(header_str) == 0): + break + + # Convert from string to PMT (should be a dictionary) + try: + header = gr.pmt_deserialize_str(header_str) + except RuntimeError: + sys.stderr.write("Could not deserialize header: invalid or corrupt data file.\n") + sys.exit(1) + #gr.pmt_print(header) + + info = parse_file_metadata.parse_header(header, hdr_start, True) + print "\n\n" + + nread += info['nbytes'] + parse_file_metadata.HEADER_LENGTH - info = parse_file_metadata.parse_header(header, True) - #print info + handle.seek(nread, 0) if __name__ == "__main__": usage="%prog: [options] filename" |