summaryrefslogtreecommitdiff
path: root/gr-utils/src
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-11-24 19:09:02 -0500
committerTom Rondeau <trondeau@vt.edu>2012-11-24 19:09:02 -0500
commit9dc8f8b18043e71b50b3a254cb52bf355e97e6fa (patch)
treef1a00dc48cecc25ca2fbc57aa0267bb40871ac63 /gr-utils/src
parent54c23abf9b9703b8d52704fa01b9d6069d9edf91 (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_metadata33
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"