summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-blocks/grc/blocks_file_source.xml12
-rw-r--r--gr-blocks/grc/blocks_tag_gate.xml2
-rw-r--r--gr-blocks/include/gnuradio/blocks/file_source.h5
-rw-r--r--gr-blocks/lib/file_source_impl.cc25
-rw-r--r--gr-blocks/lib/file_source_impl.h7
-rw-r--r--gr-blocks/python/blocks/qa_file_source_sink.py62
-rw-r--r--gr-dtv/examples/germany-g1.grc2
-rw-r--r--gr-dtv/examples/germany-g10.grc2
-rw-r--r--gr-dtv/examples/germany-g2.grc2
-rw-r--r--gr-dtv/examples/germany-g3.grc2
-rw-r--r--gr-dtv/examples/germany-g4.grc2
-rw-r--r--gr-dtv/examples/germany-g5.grc2
-rw-r--r--gr-dtv/examples/germany-g6.grc2
-rw-r--r--gr-dtv/examples/germany-g7.grc2
-rw-r--r--gr-dtv/examples/germany-g8.grc2
-rw-r--r--gr-dtv/examples/germany-g9.grc2
-rw-r--r--gr-dtv/examples/vv001-cr35.grc2
-rw-r--r--gr-dtv/examples/vv003-cr23.grc2
-rw-r--r--gr-dtv/examples/vv004-8kfft.grc2
-rw-r--r--gr-dtv/examples/vv005-8kfft.grc2
-rw-r--r--gr-dtv/examples/vv007-16kfft.grc2
-rw-r--r--gr-dtv/examples/vv008-16kfft.grc2
-rw-r--r--gr-dtv/examples/vv009-4kfft.grc2
-rw-r--r--gr-dtv/examples/vv010-2kfft.grc2
-rw-r--r--gr-dtv/examples/vv011-1kfft.grc2
-rw-r--r--gr-dtv/examples/vv012-64qam45.grc2
-rw-r--r--gr-dtv/examples/vv013-64qam56.grc2
-rw-r--r--gr-dtv/examples/vv014-64qam34.grc2
-rw-r--r--gr-dtv/examples/vv015-8kfft.grc2
-rw-r--r--gr-dtv/examples/vv016-256qam34.grc2
-rw-r--r--gr-dtv/examples/vv017-paprtr.grc2
-rw-r--r--gr-dtv/examples/vv018-miso.grc4
-rw-r--r--gr-dtv/examples/vv019-norot.grc2
-rw-r--r--gr-dtv/examples/vv034-dtg016.grc2
-rw-r--r--gr-dtv/examples/vv035-dtg052.grc2
-rw-r--r--gr-dtv/examples/vv036-dtg091.grc2
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h6
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h4
-rw-r--r--gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h4
52 files changed, 174 insertions, 67 deletions
diff --git a/gr-blocks/grc/blocks_file_source.xml b/gr-blocks/grc/blocks_file_source.xml
index 7ac573f2da..1f09e95168 100644
--- a/gr-blocks/grc/blocks_file_source.xml
+++ b/gr-blocks/grc/blocks_file_source.xml
@@ -8,8 +8,11 @@
<name>File Source</name>
<key>blocks_file_source</key>
<import>from gnuradio import blocks</import>
- <make>blocks.file_source($type.size*$vlen, $file, $repeat)</make>
+ <import>import pmt</import>
+ <make>blocks.file_source($type.size*$vlen, $file, $repeat)
+self.$(id).set_begin_tag($begin_tag)</make>
<callback>open($file, $repeat)</callback>
+ <callback>self.$(id).set_begin_tag($begin_tag)</callback>
<param>
<name>File</name>
<key>file</key>
@@ -66,6 +69,13 @@
<value>1</value>
<type>int</type>
</param>
+
+ <param>
+ <name>Add begin tag</name>
+ <key>begin_tag</key>
+ <value>pmt.PMT_NIL</value>
+ <type>raw</type>
+ </param>
<check>$vlen &gt; 0</check>
<source>
<name>out</name>
diff --git a/gr-blocks/grc/blocks_tag_gate.xml b/gr-blocks/grc/blocks_tag_gate.xml
index 34475ff96f..0cf6dc42ed 100644
--- a/gr-blocks/grc/blocks_tag_gate.xml
+++ b/gr-blocks/grc/blocks_tag_gate.xml
@@ -4,7 +4,7 @@
<key>blocks_tag_gate</key>
<import>from gnuradio import blocks</import>
<make>blocks.tag_gate($type.size * $vlen, $propagate_tags)
-self.$(id).set_single_key($single_key))</make>
+self.$(id).set_single_key($single_key)</make>
<callback>self.$(id).set_single_key($single_key)</callback>
<param>
diff --git a/gr-blocks/include/gnuradio/blocks/file_source.h b/gr-blocks/include/gnuradio/blocks/file_source.h
index 5682853a35..c8138339fd 100644
--- a/gr-blocks/include/gnuradio/blocks/file_source.h
+++ b/gr-blocks/include/gnuradio/blocks/file_source.h
@@ -77,6 +77,11 @@ namespace gr {
* \brief Close the file handle.
*/
virtual void close() = 0;
+
+ /*!
+ * \brief Add a stream tag to the first sample of the file if true
+ */
+ virtual void set_begin_tag(pmt::pmt_t val) = 0;
};
} /* namespace blocks */
diff --git a/gr-blocks/lib/file_source_impl.cc b/gr-blocks/lib/file_source_impl.cc
index 1602b02416..9dfd30c016 100644
--- a/gr-blocks/lib/file_source_impl.cc
+++ b/gr-blocks/lib/file_source_impl.cc
@@ -64,10 +64,15 @@ namespace gr {
io_signature::make(0, 0, 0),
io_signature::make(1, 1, itemsize)),
d_itemsize(itemsize), d_fp(0), d_new_fp(0), d_repeat(repeat),
- d_updated(false)
+ d_updated(false), d_file_begin(true), d_repeat_cnt(0),
+ d_add_begin_tag(pmt::PMT_NIL)
{
open(filename, repeat);
do_update();
+
+ std::stringstream str;
+ str << name() << unique_id();
+ _id = pmt::string_to_symbol(str.str());
}
file_source_impl::~file_source_impl()
@@ -139,9 +144,16 @@ namespace gr {
d_fp = d_new_fp; // install new file pointer
d_new_fp = 0;
d_updated = false;
+ d_file_begin = true;
}
}
+ void
+ file_source_impl::set_begin_tag(pmt::pmt_t val)
+ {
+ d_add_begin_tag = val;
+ }
+
int
file_source_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
@@ -156,7 +168,14 @@ namespace gr {
throw std::runtime_error("work with file not open");
gr::thread::scoped_lock lock(fp_mutex); // hold for the rest of this function
+
while(size) {
+ // Add stream tag whenever the file starts again
+ if (d_file_begin && d_add_begin_tag != pmt::PMT_NIL) {
+ add_item_tag(0, nitems_written(0) + noutput_items - size, d_add_begin_tag, pmt::from_long(d_repeat_cnt), _id);
+ d_file_begin = false;
+ }
+
i = fread(o, d_itemsize, size, (FILE*)d_fp);
size -= i;
@@ -178,6 +197,10 @@ namespace gr {
fprintf(stderr, "[%s] fseek failed\n", __FILE__);
exit(-1);
}
+ if (d_add_begin_tag != pmt::PMT_NIL) {
+ d_file_begin = true;
+ d_repeat_cnt++;
+ }
}
if(size > 0) { // EOF or error
diff --git a/gr-blocks/lib/file_source_impl.h b/gr-blocks/lib/file_source_impl.h
index 80232a1dbe..19f393fc1d 100644
--- a/gr-blocks/lib/file_source_impl.h
+++ b/gr-blocks/lib/file_source_impl.h
@@ -37,7 +37,12 @@ namespace gr {
FILE *d_new_fp;
bool d_repeat;
bool d_updated;
+ bool d_file_begin;
+ long d_repeat_cnt;
+ pmt::pmt_t d_add_begin_tag;
+
boost::mutex fp_mutex;
+ pmt::pmt_t _id;
void do_update();
@@ -52,6 +57,8 @@ namespace gr {
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
+
+ void set_begin_tag(pmt::pmt_t val);
};
} /* namespace blocks */
diff --git a/gr-blocks/python/blocks/qa_file_source_sink.py b/gr-blocks/python/blocks/qa_file_source_sink.py
index 30c7708a3c..e39a34ad82 100644
--- a/gr-blocks/python/blocks/qa_file_source_sink.py
+++ b/gr-blocks/python/blocks/qa_file_source_sink.py
@@ -24,6 +24,7 @@
from gnuradio import gr, gr_unittest, blocks
import os
import tempfile
+import pmt
class test_file_source_sink(gr_unittest.TestCase):
@@ -56,6 +57,7 @@ class test_file_source_sink(gr_unittest.TestCase):
result_data = snk2.data()
self.assertFloatTuplesAlmostEqual(expected_result, result_data)
+ self.assertEqual(len(snk2.tags()), 0)
def test_descriptor_001(self):
src_data = list(range(1000))
@@ -87,6 +89,7 @@ class test_file_source_sink(gr_unittest.TestCase):
result_data = snk2.data()
self.assertFloatTuplesAlmostEqual(expected_result, result_data)
+ self.assertEqual(len(snk2.tags()), 0)
def test_file_source_can_seek_after_open(self):
src_data = list(range(1000))
@@ -102,6 +105,65 @@ class test_file_source_sink(gr_unittest.TestCase):
source = blocks.file_source(gr.sizeof_float, temp.name)
self.assertTrue(source.seek(0, os.SEEK_SET))
+ def test_begin_tag(self):
+ src_data = range(1000)
+ expected_result = range(1000)
+
+ snk2 = blocks.vector_sink_f()
+
+ with tempfile.NamedTemporaryFile() as temp:
+ src = blocks.vector_source_f(src_data)
+ snk = blocks.file_sink(gr.sizeof_float, temp.name)
+ snk.set_unbuffered(True)
+
+ src2 = blocks.file_source(gr.sizeof_float, temp.name)
+ src2.set_begin_tag(pmt.string_to_symbol("file_begin"))
+
+ self.tb.connect(src, snk)
+ self.tb.run()
+
+ self.tb.disconnect(src, snk)
+ self.tb.connect(src2, snk2)
+ self.tb.run()
+
+ result_data = snk2.data()
+ self.assertFloatTuplesAlmostEqual(expected_result, result_data)
+ self.assertEqual(len(snk2.tags()), 1)
+
+ def test_begin_tag_repeat(self):
+ src_data = range(1000)
+ expected_result = range(1000)
+ expected_result.extend(range(1000))
+
+ snk2 = blocks.vector_sink_f()
+
+ with tempfile.NamedTemporaryFile() as temp:
+ src = blocks.vector_source_f(src_data)
+ snk = blocks.file_sink(gr.sizeof_float, temp.name)
+ snk.set_unbuffered(True)
+
+ src2 = blocks.file_source(gr.sizeof_float, temp.name, True)
+ src2.set_begin_tag(pmt.string_to_symbol("file_begin"))
+ hd = blocks.head(gr.sizeof_float, 2000)
+
+ self.tb.connect(src, snk)
+ self.tb.run()
+
+ self.tb.disconnect(src, snk)
+ self.tb.connect(src2, hd, snk2)
+ self.tb.run()
+
+ result_data = snk2.data()
+ self.assertFloatTuplesAlmostEqual(expected_result, result_data)
+ tags = snk2.tags()
+ self.assertEqual(len(tags), 2)
+ self.assertEqual(str(tags[0].key), "file_begin")
+ self.assertEqual(str(tags[0].value), "0")
+ self.assertEqual(tags[0].offset, 0)
+ self.assertEqual(str(tags[1].key), "file_begin")
+ self.assertEqual(str(tags[1].value), "1")
+ self.assertEqual(tags[1].offset, 1000)
+
if __name__ == '__main__':
gr_unittest.run(test_file_source_sink, "test_file_source_sink.xml")
diff --git a/gr-dtv/examples/germany-g1.grc b/gr-dtv/examples/germany-g1.grc
index 88c05b286b..63dd629cdb 100644
--- a/gr-dtv/examples/germany-g1.grc
+++ b/gr-dtv/examples/germany-g1.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g10.grc b/gr-dtv/examples/germany-g10.grc
index 7e4c56e312..47cd5337b1 100644
--- a/gr-dtv/examples/germany-g10.grc
+++ b/gr-dtv/examples/germany-g10.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g2.grc b/gr-dtv/examples/germany-g2.grc
index 1027eb96fa..3022a91675 100644
--- a/gr-dtv/examples/germany-g2.grc
+++ b/gr-dtv/examples/germany-g2.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g3.grc b/gr-dtv/examples/germany-g3.grc
index 71a67283a6..0464dd831a 100644
--- a/gr-dtv/examples/germany-g3.grc
+++ b/gr-dtv/examples/germany-g3.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g4.grc b/gr-dtv/examples/germany-g4.grc
index 7e20ab2767..cb8c153e49 100644
--- a/gr-dtv/examples/germany-g4.grc
+++ b/gr-dtv/examples/germany-g4.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g5.grc b/gr-dtv/examples/germany-g5.grc
index d1949bab7d..1f19144530 100644
--- a/gr-dtv/examples/germany-g5.grc
+++ b/gr-dtv/examples/germany-g5.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g6.grc b/gr-dtv/examples/germany-g6.grc
index 002bce4a90..f26a2e8d0b 100644
--- a/gr-dtv/examples/germany-g6.grc
+++ b/gr-dtv/examples/germany-g6.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g7.grc b/gr-dtv/examples/germany-g7.grc
index 2b656fe9c4..6c26874feb 100644
--- a/gr-dtv/examples/germany-g7.grc
+++ b/gr-dtv/examples/germany-g7.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g8.grc b/gr-dtv/examples/germany-g8.grc
index 2106a345d3..ae3ceccd58 100644
--- a/gr-dtv/examples/germany-g8.grc
+++ b/gr-dtv/examples/germany-g8.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/germany-g9.grc b/gr-dtv/examples/germany-g9.grc
index 2517259ff0..d7908313cf 100644
--- a/gr-dtv/examples/germany-g9.grc
+++ b/gr-dtv/examples/germany-g9.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv001-cr35.grc b/gr-dtv/examples/vv001-cr35.grc
index f2faa8cad6..64f044751d 100644
--- a/gr-dtv/examples/vv001-cr35.grc
+++ b/gr-dtv/examples/vv001-cr35.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv003-cr23.grc b/gr-dtv/examples/vv003-cr23.grc
index cbb8c7ab79..bf415ba42d 100644
--- a/gr-dtv/examples/vv003-cr23.grc
+++ b/gr-dtv/examples/vv003-cr23.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv004-8kfft.grc b/gr-dtv/examples/vv004-8kfft.grc
index 18e4abd643..d61fc9839b 100644
--- a/gr-dtv/examples/vv004-8kfft.grc
+++ b/gr-dtv/examples/vv004-8kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv005-8kfft.grc b/gr-dtv/examples/vv005-8kfft.grc
index 071d89f6f0..95471be171 100644
--- a/gr-dtv/examples/vv005-8kfft.grc
+++ b/gr-dtv/examples/vv005-8kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv007-16kfft.grc b/gr-dtv/examples/vv007-16kfft.grc
index ffb7a1909d..696590399d 100644
--- a/gr-dtv/examples/vv007-16kfft.grc
+++ b/gr-dtv/examples/vv007-16kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv008-16kfft.grc b/gr-dtv/examples/vv008-16kfft.grc
index b0f5f23b46..30990aa4e9 100644
--- a/gr-dtv/examples/vv008-16kfft.grc
+++ b/gr-dtv/examples/vv008-16kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv009-4kfft.grc b/gr-dtv/examples/vv009-4kfft.grc
index 02b90b2fb4..8760108e55 100644
--- a/gr-dtv/examples/vv009-4kfft.grc
+++ b/gr-dtv/examples/vv009-4kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv010-2kfft.grc b/gr-dtv/examples/vv010-2kfft.grc
index d643d15bdf..eb8ab55f3f 100644
--- a/gr-dtv/examples/vv010-2kfft.grc
+++ b/gr-dtv/examples/vv010-2kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv011-1kfft.grc b/gr-dtv/examples/vv011-1kfft.grc
index d2cbd3bbb1..92d661ef31 100644
--- a/gr-dtv/examples/vv011-1kfft.grc
+++ b/gr-dtv/examples/vv011-1kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv012-64qam45.grc b/gr-dtv/examples/vv012-64qam45.grc
index 0b4044dfae..311ede1645 100644
--- a/gr-dtv/examples/vv012-64qam45.grc
+++ b/gr-dtv/examples/vv012-64qam45.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv013-64qam56.grc b/gr-dtv/examples/vv013-64qam56.grc
index aeca680a21..b0dd6b8f79 100644
--- a/gr-dtv/examples/vv013-64qam56.grc
+++ b/gr-dtv/examples/vv013-64qam56.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv014-64qam34.grc b/gr-dtv/examples/vv014-64qam34.grc
index a14fca9cff..0c5a93e80c 100644
--- a/gr-dtv/examples/vv014-64qam34.grc
+++ b/gr-dtv/examples/vv014-64qam34.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv015-8kfft.grc b/gr-dtv/examples/vv015-8kfft.grc
index 6a50f9af6c..53a6157970 100644
--- a/gr-dtv/examples/vv015-8kfft.grc
+++ b/gr-dtv/examples/vv015-8kfft.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv016-256qam34.grc b/gr-dtv/examples/vv016-256qam34.grc
index 4fb1b2affb..aff61374f6 100644
--- a/gr-dtv/examples/vv016-256qam34.grc
+++ b/gr-dtv/examples/vv016-256qam34.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv017-paprtr.grc b/gr-dtv/examples/vv017-paprtr.grc
index b56cf38948..cbac8df252 100644
--- a/gr-dtv/examples/vv017-paprtr.grc
+++ b/gr-dtv/examples/vv017-paprtr.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv018-miso.grc b/gr-dtv/examples/vv018-miso.grc
index 8c31223762..f7babd3c79 100644
--- a/gr-dtv/examples/vv018-miso.grc
+++ b/gr-dtv/examples/vv018-miso.grc
@@ -1669,7 +1669,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
@@ -1889,7 +1889,7 @@
</param>
<param>
<key>center_freq1</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain1</key>
diff --git a/gr-dtv/examples/vv019-norot.grc b/gr-dtv/examples/vv019-norot.grc
index fdaec4f591..0e2b0c684f 100644
--- a/gr-dtv/examples/vv019-norot.grc
+++ b/gr-dtv/examples/vv019-norot.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv034-dtg016.grc b/gr-dtv/examples/vv034-dtg016.grc
index 013fcf886f..fab2052041 100644
--- a/gr-dtv/examples/vv034-dtg016.grc
+++ b/gr-dtv/examples/vv034-dtg016.grc
@@ -2412,7 +2412,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv035-dtg052.grc b/gr-dtv/examples/vv035-dtg052.grc
index 0d5f38cb5c..1d9d6a5511 100644
--- a/gr-dtv/examples/vv035-dtg052.grc
+++ b/gr-dtv/examples/vv035-dtg052.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 4000000)</value>
+ <value>uhd.tune_request(center_freq, 4000000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/examples/vv036-dtg091.grc b/gr-dtv/examples/vv036-dtg091.grc
index 75e0e42e51..7ae57c1434 100644
--- a/gr-dtv/examples/vv036-dtg091.grc
+++ b/gr-dtv/examples/vv036-dtg091.grc
@@ -2491,7 +2491,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>uhd.tune_request(429000000, 3500000)</value>
+ <value>uhd.tune_request(center_freq, 3500000)</value>
</param>
<param>
<key>norm_gain0</key>
diff --git a/gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h b/gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h
index 0fb6c94f7a..c356210d7e 100644
--- a/gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015,2016 Free Software Foundation, Inc.
+ * Copyright 2015-2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@ namespace gr {
* \ingroup dtv
*
* \details
- * Input: 188-byte MPEG-2 Transport Stream packets.
+ * Input: 188-byte MPEG-2 Transport Stream packets. \n
* Output: Variable length FEC baseband frames (BBFRAME). The output frame
* length is based on the FEC rate.
*/
diff --git a/gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h b/gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h
index f8ee7bdb30..0acba70cd5 100644
--- a/gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015,2016 Free Software Foundation, Inc.
+ * Copyright 2015-2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \ingroup dtv
*
* \details
- * Input: Variable length FEC baseband frames (BBFRAME).
+ * Input: Variable length FEC baseband frames (BBFRAME). \n
* Output: Scrambled variable length FEC baseband frames (BBFRAME).
*/
class DTV_API dvb_bbscrambler_bb : virtual public gr::sync_block
diff --git a/gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h b/gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h
index 59dd162545..34a8684fa4 100644
--- a/gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015,2016 Free Software Foundation, Inc.
+ * Copyright 2015-2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ namespace gr {
* \ingroup dtv
*
* \details
- * Input: Variable length FEC baseband frames (BBFRAME).
+ * Input: Variable length FEC baseband frames (BBFRAME). \n
* Output: Variable length FEC baseband frames with appended BCH (BCHFEC).
*/
class DTV_API dvb_bch_bb : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h b/gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h
index 2ed17f3ed3..215c8deb93 100644
--- a/gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015,2016 Free Software Foundation, Inc.
+ * Copyright 2015-2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ namespace gr {
* \brief Encodes a LDPC (Low-Density Parity-Check) FEC.
* \ingroup dtv
*
- * Input: Variable length FEC baseband frames with appended BCH (BCHFEC).
+ * Input: Variable length FEC baseband frames with appended BCH (BCHFEC). \n
* Output: Normal, medium or short FEC baseband frames with appended LPDC (LDPCFEC).
*/
class DTV_API dvb_ldpc_bb : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h b/gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h
index 3aba9daf86..665e6c5e0a 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ namespace gr {
* \brief Bit interleaves DVB-S2 FEC baseband frames.
* \ingroup dtv
*
- * Input: Normal or short FEC baseband frames with appended LPDC (LDPCFEC).
+ * Input: Normal or short FEC baseband frames with appended LPDC (LDPCFEC). \n
* Output: Bit interleaved baseband frames.
*/
class DTV_API dvbs2_interleaver_bb : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h b/gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h
index a1f2c9e6fe..c794fc18df 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015,2016 Free Software Foundation, Inc.
+ * Copyright 2015-2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Modulates DVB-S2 frames.
* \ingroup dtv
*
- * Input: Bit interleaved baseband frames.
+ * Input: Bit interleaved baseband frames. \n
* Output: QPSK, 8PSK, 16APSK or 32APSK modulated complex IQ values (XFECFRAME).
*/
class DTV_API dvbs2_modulator_bc : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h b/gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h
index 0893d0133d..5a46d24ef9 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Signals DVB-S2 physical layer frames.
* \ingroup dtv
*
- * Input: QPSK, 8PSK, 16APSK or 32APSK modulated complex IQ values (XFECFRAME).
+ * Input: QPSK, 8PSK, 16APSK or 32APSK modulated complex IQ values (XFECFRAME). \n
* Output: DVB-S2 PLFRAME.
*/
class DTV_API dvbs2_physical_cc : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h
index 2293349ca4..090180dd3e 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ namespace gr {
* \brief Cell and time interleaves QPSK/QAM modulated cells.
* \ingroup dtv
*
- * Input: QPSK, 16QAM, 64QAM or 256QAM modulated cells.
+ * Input: QPSK, 16QAM, 64QAM or 256QAM modulated cells. \n
* Output: Cell and time interleaved QPSK, 16QAM, 64QAM or 256QAM modulated cells.
*/
class DTV_API dvbt2_cellinterleaver_cc : virtual public gr::sync_block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h
index bf6e4db297..c1da566dc5 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Maps T2 frames.
* \ingroup dtv
*
- * Input: Cell and time interleaved QPSK, 16QAM, 64QAM or 256QAM modulated cells.
+ * Input: Cell and time interleaved QPSK, 16QAM, 64QAM or 256QAM modulated cells. \n
* Output: T2 frame.
*/
class DTV_API dvbt2_framemapper_cc : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h
index 766fe031a3..91f47e8e49 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Frequency interleaves a T2 frame.
* \ingroup dtv
*
- * Input: T2 frame.
+ * Input: T2 frame. \n
* Output: Frequency interleaved T2 frame.
*/
class DTV_API dvbt2_freqinterleaver_cc : virtual public gr::sync_block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h b/gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h
index 00c23cc972..b32aabd522 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ namespace gr {
* \brief Bit interleaves DVB-T2 FEC baseband frames.
* \ingroup dtv
*
- * Input: Normal or short FEC baseband frames with appended LPDC (LDPCFEC).
+ * Input: Normal or short FEC baseband frames with appended LPDC (LDPCFEC). \n
* Output: Bit interleaved (with column twist and bit to cell word de-multiplexed) cells.
*/
class DTV_API dvbt2_interleaver_bb : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h
index c16e711e9b..5edf077248 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,8 +33,8 @@ namespace gr {
* \brief Splits the stream for MISO (Multiple Input Single Output).
* \ingroup dtv
*
- * Input: Frequency interleaved T2 frame.
- * Output1: Frequency interleaved T2 frame (copy of input).
+ * Input: Frequency interleaved T2 frame. \n
+ * Output1: Frequency interleaved T2 frame (copy of input). \n
* Output2: Frequency interleaved T2 frame with modified Alamouti processing.
*/
class DTV_API dvbt2_miso_cc : virtual public gr::sync_block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h
index 226dbf55f8..82b36d90d1 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Modulates DVB-T2 cells.
* \ingroup dtv
*
- * Input: Bit interleaved (with column twist and bit to cell word de-multiplexing) cells.
+ * Input: Bit interleaved (with column twist and bit to cell word de-multiplexing) cells. \n
* Output: QPSK, 16QAM, 64QAM or 256QAM modulated complex IQ values (cells).
*/
class DTV_API dvbt2_modulator_bc : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h
index 84e0d4a268..f09e75ca40 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Inserts a P1 symbol.
* \ingroup dtv
*
- * Input: OFDM T2 frame.
+ * Input: OFDM T2 frame. \n
* Output: OFDM T2 frame with P1 symbol.
*/
class DTV_API dvbt2_p1insertion_cc : virtual public gr::block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h
index 5a39dfa565..c547b5f595 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Peak to Average Power Ratio (PAPR) reduction.
* \ingroup dtv
*
- * Input: A T2 frame of OFDM symbols.
+ * Input: A T2 frame of OFDM symbols. \n
* Output: A T2 frame of PAPR reduced OFDM symbols.
*/
class DTV_API dvbt2_paprtr_cc : virtual public gr::sync_block
diff --git a/gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h b/gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h
index 19ae6d948f..6d44562d59 100644
--- a/gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h
+++ b/gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2015 Free Software Foundation, Inc.
+ * Copyright 2015,2017 Free Software Foundation, Inc.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ namespace gr {
* \brief Adds pilots to T2 frames.
* \ingroup dtv
*
- * Input: Frequency interleaved T2 frame.
+ * Input: Frequency interleaved T2 frame. \n
* Output: T2 frame with pilots (in time domain).
*/
class DTV_API dvbt2_pilotgenerator_cc : virtual public gr::block