summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/lib')
-rw-r--r--gnuradio-core/src/lib/io/gr_file_meta_sink.cc9
-rw-r--r--gnuradio-core/src/lib/io/gr_file_meta_sink.h2
-rw-r--r--gnuradio-core/src/lib/io/gr_file_meta_sink.i2
-rw-r--r--gnuradio-core/src/lib/io/gr_file_meta_source.cc33
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;