diff options
Diffstat (limited to 'gnuradio-core/src/lib')
-rw-r--r-- | gnuradio-core/src/lib/io/gr_file_meta_sink.cc | 9 | ||||
-rw-r--r-- | gnuradio-core/src/lib/io/gr_file_meta_sink.h | 2 | ||||
-rw-r--r-- | gnuradio-core/src/lib/io/gr_file_meta_sink.i | 2 | ||||
-rw-r--r-- | gnuradio-core/src/lib/io/gr_file_meta_source.cc | 33 |
4 files changed, 13 insertions, 33 deletions
diff --git a/gnuradio-core/src/lib/io/gr_file_meta_sink.cc b/gnuradio-core/src/lib/io/gr_file_meta_sink.cc index b016dd1d3..ab0acbdb4 100644 --- a/gnuradio-core/src/lib/io/gr_file_meta_sink.cc +++ b/gnuradio-core/src/lib/io/gr_file_meta_sink.cc @@ -116,10 +116,11 @@ gr_file_meta_sink::gr_file_meta_sink(size_t itemsize, const std::string &filenam d_header = pmt_dict_add(d_header, mp("version"), mp(METADATA_VERSION)); d_header = pmt_dict_add(d_header, mp("rx_rate"), mp(samp_rate)); d_header = pmt_dict_add(d_header, mp("rx_time"), timestamp); + d_header = pmt_dict_add(d_header, mp("size"), pmt_from_long(d_itemsize)); d_header = pmt_dict_add(d_header, mp("type"), pmt_from_long(type)); d_header = pmt_dict_add(d_header, mp("cplx"), complex ? PMT_T : PMT_F); d_header = pmt_dict_add(d_header, mp("strt"), pmt_from_uint64(METADATA_HEADER_SIZE+d_extra_size)); - d_header = pmt_dict_add(d_header, mp("size"), pmt_from_uint64(0)); + d_header = pmt_dict_add(d_header, mp("bytes"), pmt_from_uint64(0)); do_update(); @@ -305,7 +306,7 @@ gr_file_meta_sink::update_last_header_inline() size_t hdrlen = pmt_to_uint64(pmt_dict_ref(d_header, mp("strt"), PMT_NIL)); size_t seg_size = d_itemsize*d_total_seg_size; pmt_t s = pmt_from_uint64(seg_size); - update_header(mp("size"), s); + update_header(mp("bytes"), s); update_header(mp("strt"), pmt_from_uint64(METADATA_HEADER_SIZE+d_extra_size)); fseek(d_fp, -seg_size-hdrlen, SEEK_CUR); write_header(d_fp, d_header, d_extra); @@ -320,7 +321,7 @@ gr_file_meta_sink::update_last_header_detached() size_t hdrlen = pmt_to_uint64(pmt_dict_ref(d_header, mp("strt"), PMT_NIL)); size_t seg_size = d_itemsize*d_total_seg_size; pmt_t s = pmt_from_uint64(seg_size); - update_header(mp("size"), s); + update_header(mp("bytes"), s); update_header(mp("strt"), pmt_from_uint64(METADATA_HEADER_SIZE+d_extra_size)); fseek(d_hdr_fp, -hdrlen, SEEK_CUR); write_header(d_hdr_fp, d_header, d_extra); @@ -333,7 +334,7 @@ gr_file_meta_sink::write_and_update() // based on current index + header size. //uint64_t loc = get_last_header_loc(); pmt_t s = pmt_from_uint64(0); - update_header(mp("size"), s); + update_header(mp("bytes"), s); // If we have multiple tags on the same offset, this makes // sure we just overwrite the same header each time instead diff --git a/gnuradio-core/src/lib/io/gr_file_meta_sink.h b/gnuradio-core/src/lib/io/gr_file_meta_sink.h index c0219ac25..9b67cc4c8 100644 --- a/gnuradio-core/src/lib/io/gr_file_meta_sink.h +++ b/gnuradio-core/src/lib/io/gr_file_meta_sink.h @@ -31,7 +31,7 @@ using namespace pmt; const char METADATA_VERSION = 0; -const size_t METADATA_HEADER_SIZE = 134; +const size_t METADATA_HEADER_SIZE = 149; enum gr_file_types { GR_FILE_BYTE=0, diff --git a/gnuradio-core/src/lib/io/gr_file_meta_sink.i b/gnuradio-core/src/lib/io/gr_file_meta_sink.i index 743e89730..6fa34913b 100644 --- a/gnuradio-core/src/lib/io/gr_file_meta_sink.i +++ b/gnuradio-core/src/lib/io/gr_file_meta_sink.i @@ -23,7 +23,7 @@ GR_SWIG_BLOCK_MAGIC(gr,file_meta_sink) const char METADATA_VERSION = 0; -const size_t METADATA_HEADER_SIZE = 134; +const size_t METADATA_HEADER_SIZE = 149; enum gr_file_types { GR_FILE_BYTE=0, diff --git a/gnuradio-core/src/lib/io/gr_file_meta_source.cc b/gnuradio-core/src/lib/io/gr_file_meta_source.cc index 669c5d477..d940e5edc 100644 --- a/gnuradio-core/src/lib/io/gr_file_meta_source.cc +++ b/gnuradio-core/src/lib/io/gr_file_meta_source.cc @@ -228,38 +228,17 @@ gr_file_meta_source::parse_header(pmt_t hdr, uint64_t offset, throw std::runtime_error("file_meta_source: Could not extract time stamp.\n"); } - // GET DATA TYPE - if(pmt_dict_has_key(hdr, pmt_string_to_symbol("type"))) { - int t = pmt_to_long(pmt_dict_ref(hdr, pmt_string_to_symbol("type"), PMT_NIL)); - switch(t) { - case(GR_FILE_CHAR): d_itemsize = sizeof(char); break; - case(GR_FILE_SHORT): d_itemsize = sizeof(short); break; - case(GR_FILE_INT): d_itemsize = sizeof(int); break; - case(GR_FILE_LONG): d_itemsize = sizeof(long int); break; - case(GR_FILE_LONG_LONG): d_itemsize = sizeof(long long int); break; - case(GR_FILE_FLOAT): d_itemsize = sizeof(float); break; - case(GR_FILE_DOUBLE): d_itemsize = sizeof(double); break; - default: - throw std::runtime_error("file_meta_source: Could not determine data type size.\n"); - } - } - else { - throw std::runtime_error("file_meta_source: Could not extract data type.\n"); - } - - // GET COMPLEX INDICATOR - if(pmt_dict_has_key(hdr, pmt_string_to_symbol("cplx"))) { - bool cplx = pmt_to_bool(pmt_dict_ref(hdr, pmt_string_to_symbol("cplx"), PMT_NIL)); - if(cplx) - d_itemsize *= 2; + // GET ITEM SIZE OF DATA + if(pmt_dict_has_key(hdr, pmt_string_to_symbol("size"))) { + d_itemsize = pmt_to_long(pmt_dict_ref(hdr, pmt_string_to_symbol("size"), PMT_NIL)); } else { - throw std::runtime_error("file_meta_source: Could not extract complex indicator.\n"); + throw std::runtime_error("file_meta_source: Could not extract item size.\n"); } // GET SEGMENT SIZE - if(pmt_dict_has_key(hdr, pmt_string_to_symbol("size"))) { - d_seg_size = pmt_to_uint64(pmt_dict_ref(hdr, pmt_string_to_symbol("size"), PMT_NIL)); + if(pmt_dict_has_key(hdr, pmt_string_to_symbol("bytes"))) { + d_seg_size = pmt_to_uint64(pmt_dict_ref(hdr, pmt_string_to_symbol("bytes"), PMT_NIL)); // Convert from bytes to items d_seg_size /= d_itemsize; |