summaryrefslogtreecommitdiff
path: root/gr-dtv/grc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-dtv/grc')
-rw-r--r--gr-dtv/grc/CMakeLists.txt109
-rw-r--r--gr-dtv/grc/dtv.tree.yml62
-rw-r--r--gr-dtv/grc/dtv_atsc_deinterleaver.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_deinterleaver.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_depad.block.yml17
-rw-r--r--gr-dtv/grc/dtv_atsc_depad.xml24
-rw-r--r--gr-dtv/grc/dtv_atsc_derandomizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_derandomizer.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_equalizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_equalizer.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_field_sync_mux.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_fpll.block.yml21
-rw-r--r--gr-dtv/grc/dtv_atsc_fpll.xml29
-rw-r--r--gr-dtv/grc/dtv_atsc_fs_checker.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_fs_checker.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_interleaver.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_interleaver.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_pad.block.yml17
-rw-r--r--gr-dtv/grc/dtv_atsc_pad.xml21
-rw-r--r--gr-dtv/grc/dtv_atsc_randomizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_randomizer.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_decoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_decoder.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_encoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_encoder.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_rx.block.yml24
-rw-r--r--gr-dtv/grc/dtv_atsc_rx.xml35
-rw-r--r--gr-dtv/grc/dtv_atsc_rx_filter.block.yml24
-rw-r--r--gr-dtv/grc/dtv_atsc_rx_filter.xml35
-rw-r--r--gr-dtv/grc/dtv_atsc_sync.block.yml22
-rw-r--r--gr-dtv/grc/dtv_atsc_sync.xml30
-rw-r--r--gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_trellis_encoder.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_viterbi_decoder.xml25
-rw-r--r--gr-dtv/grc/dtv_block_tree.xml106
-rw-r--r--gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml29
-rw-r--r--gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml41
-rw-r--r--gr-dtv/grc/dtv_catv_randomizer_bb.block.yml25
-rw-r--r--gr-dtv/grc/dtv_catv_randomizer_bb.xml35
-rw-r--r--gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml16
-rw-r--r--gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml20
-rw-r--r--gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml16
-rw-r--r--gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml20
-rw-r--r--gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml25
-rw-r--r--gr-dtv/grc/dtv_catv_trellis_enc_bb.xml35
-rw-r--r--gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml154
-rw-r--r--gr-dtv/grc/dtv_dvb_bbheader_bb.xml596
-rw-r--r--gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml118
-rw-r--r--gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml512
-rw-r--r--gr-dtv/grc/dtv_dvb_bch_bb.block.yml118
-rw-r--r--gr-dtv/grc/dtv_dvb_bch_bb.xml512
-rw-r--r--gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml126
-rw-r--r--gr-dtv/grc/dtv_dvb_ldpc_bb.xml528
-rw-r--r--gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml86
-rw-r--r--gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml455
-rw-r--r--gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml102
-rw-r--r--gr-dtv/grc/dtv_dvbs2_modulator_bc.xml504
-rw-r--r--gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml98
-rw-r--r--gr-dtv/grc/dtv_dvbs2_physical_cc.xml476
-rw-r--r--gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml41
-rw-r--r--gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml72
-rw-r--r--gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml203
-rw-r--r--gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml562
-rw-r--r--gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml104
-rw-r--r--gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml301
-rw-r--r--gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml40
-rw-r--r--gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml105
-rw-r--r--gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml86
-rw-r--r--gr-dtv/grc/dtv_dvbt2_miso_cc.xml254
-rw-r--r--gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt2_modulator_bc.xml75
-rw-r--r--gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml106
-rw-r--r--gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml276
-rw-r--r--gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml105
-rw-r--r--gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml286
-rw-r--r--gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml137
-rw-r--r--gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml386
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml47
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml89
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml47
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml89
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml43
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml43
-rw-r--r--gr-dtv/grc/dtv_dvbt_demap.block.yml48
-rw-r--r--gr-dtv/grc/dtv_dvbt_demap.xml90
-rw-r--r--gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml86
-rw-r--r--gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml222
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml27
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_descramble.xml29
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml28
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_dispersal.xml29
-rw-r--r--gr-dtv/grc/dtv_dvbt_inner_coder.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_inner_coder.xml112
-rw-r--r--gr-dtv/grc/dtv_dvbt_map.block.yml48
-rw-r--r--gr-dtv/grc/dtv_dvbt_map.xml90
-rw-r--r--gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml45
-rw-r--r--gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml76
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml70
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml70
-rw-r--r--gr-dtv/grc/dtv_dvbt_reference_signals.block.yml86
-rw-r--r--gr-dtv/grc/dtv_dvbt_reference_signals.xml222
-rw-r--r--gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml37
-rw-r--r--gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml56
-rw-r--r--gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml51
-rw-r--r--gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml120
111 files changed, 3012 insertions, 8096 deletions
diff --git a/gr-dtv/grc/CMakeLists.txt b/gr-dtv/grc/CMakeLists.txt
index e226d09976..3ed47f2311 100644
--- a/gr-dtv/grc/CMakeLists.txt
+++ b/gr-dtv/grc/CMakeLists.txt
@@ -18,60 +18,59 @@
# Boston, MA 02110-1301, USA.
install(FILES
- dtv_atsc_deinterleaver.xml
- dtv_atsc_depad.xml
- dtv_atsc_derandomizer.xml
- dtv_atsc_equalizer.xml
- dtv_atsc_fpll.xml
- dtv_atsc_fs_checker.xml
- dtv_atsc_rs_decoder.xml
- dtv_atsc_rx.xml
- dtv_atsc_rx_filter.xml
- dtv_atsc_sync.xml
- dtv_atsc_viterbi_decoder.xml
- dtv_block_tree.xml
- dtv_atsc_pad.xml
- dtv_atsc_randomizer.xml
- dtv_atsc_rs_encoder.xml
- dtv_atsc_interleaver.xml
- dtv_atsc_trellis_encoder.xml
- dtv_atsc_field_sync_mux.xml
- dtv_dvb_bbheader_bb.xml
- dtv_dvb_bbscrambler_bb.xml
- dtv_dvb_bch_bb.xml
- dtv_dvb_ldpc_bb.xml
- dtv_dvbt2_interleaver_bb.xml
- dtv_dvbt2_modulator_bc.xml
- dtv_dvbt2_cellinterleaver_cc.xml
- dtv_dvbt2_framemapper_cc.xml
- dtv_dvbt2_freqinterleaver_cc.xml
- dtv_dvbt2_pilotgenerator_cc.xml
- dtv_dvbt2_paprtr_cc.xml
- dtv_dvbt2_p1insertion_cc.xml
- dtv_dvbt2_miso_cc.xml
- dtv_dvbs2_interleaver_bb.xml
- dtv_dvbs2_modulator_bc.xml
- dtv_dvbs2_physical_cc.xml
- dtv_dvbt_energy_dispersal.xml
- dtv_dvbt_reed_solomon_enc.xml
- dtv_dvbt_convolutional_interleaver.xml
- dtv_dvbt_inner_coder.xml
- dtv_dvbt_bit_inner_interleaver.xml
- dtv_dvbt_symbol_inner_interleaver.xml
- dtv_dvbt_map.xml
- dtv_dvbt_reference_signals.xml
- dtv_dvbt_ofdm_sym_acquisition.xml
- dtv_dvbt_demod_reference_signals.xml
- dtv_dvbt_demap.xml
- dtv_dvbt_bit_inner_deinterleaver.xml
- dtv_dvbt_viterbi_decoder.xml
- dtv_dvbt_convolutional_deinterleaver.xml
- dtv_dvbt_reed_solomon_dec.xml
- dtv_dvbt_energy_descramble.xml
- dtv_catv_transport_framing_enc_bb.xml
- dtv_catv_reed_solomon_enc_bb.xml
- dtv_catv_randomizer_bb.xml
- dtv_catv_frame_sync_enc_bb.xml
- dtv_catv_trellis_enc_bb.xml
+ dtv_atsc_deinterleaver.block.yml
+ dtv_atsc_depad.block.yml
+ dtv_atsc_derandomizer.block.yml
+ dtv_atsc_equalizer.block.yml
+ dtv_atsc_fpll.block.yml
+ dtv_atsc_fs_checker.block.yml
+ dtv_atsc_rs_decoder.block.yml
+ dtv_atsc_rx.block.yml
+ dtv_atsc_rx_filter.block.yml
+ dtv_atsc_sync.block.yml
+ dtv_atsc_viterbi_decoder.block.yml
+ dtv_atsc_pad.block.yml
+ dtv_atsc_randomizer.block.yml
+ dtv_atsc_rs_encoder.block.yml
+ dtv_atsc_interleaver.block.yml
+ dtv_atsc_trellis_encoder.block.yml
+ dtv_atsc_field_sync_mux.block.yml
+ dtv_dvb_bbheader_bb.block.yml
+ dtv_dvb_bbscrambler_bb.block.yml
+ dtv_dvb_bch_bb.block.yml
+ dtv_dvb_ldpc_bb.block.yml
+ dtv_dvbt2_interleaver_bb.block.yml
+ dtv_dvbt2_modulator_bc.block.yml
+ dtv_dvbt2_cellinterleaver_cc.block.yml
+ dtv_dvbt2_framemapper_cc.block.yml
+ dtv_dvbt2_freqinterleaver_cc.block.yml
+ dtv_dvbt2_pilotgenerator_cc.block.yml
+ dtv_dvbt2_paprtr_cc.block.yml
+ dtv_dvbt2_p1insertion_cc.block.yml
+ dtv_dvbt2_miso_cc.block.yml
+ dtv_dvbs2_interleaver_bb.block.yml
+ dtv_dvbs2_modulator_bc.block.yml
+ dtv_dvbs2_physical_cc.block.yml
+ dtv_dvbt_energy_dispersal.block.yml
+ dtv_dvbt_reed_solomon_enc.block.yml
+ dtv_dvbt_convolutional_interleaver.block.yml
+ dtv_dvbt_inner_coder.block.yml
+ dtv_dvbt_bit_inner_interleaver.block.yml
+ dtv_dvbt_symbol_inner_interleaver.block.yml
+ dtv_dvbt_map.block.yml
+ dtv_dvbt_reference_signals.block.yml
+ dtv_dvbt_ofdm_sym_acquisition.block.yml
+ dtv_dvbt_demod_reference_signals.block.yml
+ dtv_dvbt_demap.block.yml
+ dtv_dvbt_bit_inner_deinterleaver.block.yml
+ dtv_dvbt_viterbi_decoder.block.yml
+ dtv_dvbt_convolutional_deinterleaver.block.yml
+ dtv_dvbt_reed_solomon_dec.block.yml
+ dtv_dvbt_energy_descramble.block.yml
+ dtv_catv_transport_framing_enc_bb.block.yml
+ dtv_catv_reed_solomon_enc_bb.block.yml
+ dtv_catv_randomizer_bb.block.yml
+ dtv_catv_frame_sync_enc_bb.block.yml
+ dtv_catv_trellis_enc_bb.block.yml
DESTINATION ${GRC_BLOCKS_DIR}
)
diff --git a/gr-dtv/grc/dtv.tree.yml b/gr-dtv/grc/dtv.tree.yml
new file mode 100644
index 0000000000..ad0b0cafb8
--- /dev/null
+++ b/gr-dtv/grc/dtv.tree.yml
@@ -0,0 +1,62 @@
+'[Core]':
+- Digital Television:
+ - ATSC:
+ - dtv_atsc_deinterleaver
+ - dtv_atsc_depad
+ - dtv_atsc_derandomizer
+ - dtv_atsc_equalizer
+ - dtv_atsc_fpll
+ - dtv_atsc_fs_checker
+ - dtv_atsc_rs_decoder
+ - dtv_atsc_rx
+ - dtv_atsc_rx_filter
+ - dtv_atsc_sync
+ - dtv_atsc_viterbi_decoder
+ - dtv_atsc_pad
+ - dtv_atsc_randomizer
+ - dtv_atsc_rs_encoder
+ - dtv_atsc_interleaver
+ - dtv_atsc_trellis_encoder
+ - dtv_atsc_field_sync_mux
+ - DVB:
+ - dtv_dvb_bbheader_bb
+ - dtv_dvb_bbscrambler_bb
+ - dtv_dvb_bch_bb
+ - dtv_dvb_ldpc_bb
+ - DVB-T2:
+ - dtv_dvbt2_interleaver_bb
+ - dtv_dvbt2_modulator_bc
+ - dtv_dvbt2_cellinterleaver_cc
+ - dtv_dvbt2_framemapper_cc
+ - dtv_dvbt2_freqinterleaver_cc
+ - dtv_dvbt2_pilotgenerator_cc
+ - dtv_dvbt2_paprtr_cc
+ - dtv_dvbt2_p1insertion_cc
+ - dtv_dvbt2_miso_cc
+ - DVB-S2:
+ - dtv_dvbs2_interleaver_bb
+ - dtv_dvbs2_modulator_bc
+ - dtv_dvbs2_physical_cc
+ - DVB-T:
+ - dtv_dvbt_energy_dispersal
+ - dtv_dvbt_reed_solomon_enc
+ - dtv_dvbt_convolutional_interleaver
+ - dtv_dvbt_inner_coder
+ - dtv_dvbt_bit_inner_interleaver
+ - dtv_dvbt_symbol_inner_interleaver
+ - dtv_dvbt_map
+ - dtv_dvbt_reference_signals
+ - dtv_dvbt_ofdm_sym_acquisition
+ - dtv_dvbt_demod_reference_signals
+ - dtv_dvbt_demap
+ - dtv_dvbt_bit_inner_deinterleaver
+ - dtv_dvbt_viterbi_decoder
+ - dtv_dvbt_convolutional_deinterleaver
+ - dtv_dvbt_reed_solomon_dec
+ - dtv_dvbt_energy_descramble
+ - ITU-T J.83B:
+ - dtv_catv_transport_framing_enc_bb
+ - dtv_catv_reed_solomon_enc_bb
+ - dtv_catv_randomizer_bb
+ - dtv_catv_frame_sync_enc_bb
+ - dtv_catv_trellis_enc_bb
diff --git a/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml b/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml
new file mode 100644
index 0000000000..5384809778
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_deinterleaver
+label: ATSC Deinterleaver
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_deinterleaver()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_deinterleaver.xml b/gr-dtv/grc/dtv_atsc_deinterleaver.xml
deleted file mode 100644
index 051ea77554..0000000000
--- a/gr-dtv/grc/dtv_atsc_deinterleaver.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Deinterleaver
-###################################################
- -->
-<block>
- <name>ATSC Deinterleaver</name>
- <key>dtv_atsc_deinterleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_deinterleaver()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_depad.block.yml b/gr-dtv/grc/dtv_atsc_depad.block.yml
new file mode 100644
index 0000000000..463de2018b
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_depad.block.yml
@@ -0,0 +1,17 @@
+id: dtv_atsc_depad
+label: ATSC Depad
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_depad()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_depad.xml b/gr-dtv/grc/dtv_atsc_depad.xml
deleted file mode 100644
index 95a1380914..0000000000
--- a/gr-dtv/grc/dtv_atsc_depad.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Depad
-###################################################
- -->
-<block>
- <name>ATSC Depad</name>
- <key>dtv_atsc_depad</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_depad()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_derandomizer.block.yml b/gr-dtv/grc/dtv_atsc_derandomizer.block.yml
new file mode 100644
index 0000000000..c64e7032fe
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_derandomizer.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_derandomizer
+label: ATSC Derandomizer
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_derandomizer()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_derandomizer.xml b/gr-dtv/grc/dtv_atsc_derandomizer.xml
deleted file mode 100644
index 5473f47e8c..0000000000
--- a/gr-dtv/grc/dtv_atsc_derandomizer.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Derandomizer
-###################################################
- -->
-<block>
- <name>ATSC Derandomizer</name>
- <key>dtv_atsc_derandomizer</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_derandomizer()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_equalizer.block.yml b/gr-dtv/grc/dtv_atsc_equalizer.block.yml
new file mode 100644
index 0000000000..e6b5b3c032
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_equalizer.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_equalizer
+label: ATSC Equalizer
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_equalizer()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_equalizer.xml b/gr-dtv/grc/dtv_atsc_equalizer.xml
deleted file mode 100644
index 7faf65fd22..0000000000
--- a/gr-dtv/grc/dtv_atsc_equalizer.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Equalizer
-###################################################
- -->
-<block>
- <name>ATSC Equalizer</name>
- <key>dtv_atsc_equalizer</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_equalizer()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml b/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml
new file mode 100644
index 0000000000..767d56d5d1
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_field_sync_mux
+label: ATSC Field Sync Mux
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 1024
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_field_sync_mux()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_field_sync_mux.xml b/gr-dtv/grc/dtv_atsc_field_sync_mux.xml
deleted file mode 100644
index 0037a9340e..0000000000
--- a/gr-dtv/grc/dtv_atsc_field_sync_mux.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Field Sync Mux
-###################################################
- -->
-<block>
- <name>ATSC Field Sync Mux</name>
- <key>dtv_atsc_field_sync_mux</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_field_sync_mux()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>1024</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_fpll.block.yml b/gr-dtv/grc/dtv_atsc_fpll.block.yml
new file mode 100644
index 0000000000..39568a8535
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_fpll.block.yml
@@ -0,0 +1,21 @@
+id: dtv_atsc_fpll
+label: ATSC Receiver FPLL
+
+parameters:
+- id: rate
+ label: Sample Rate
+ dtype: float
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: float
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_fpll(${rate})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_fpll.xml b/gr-dtv/grc/dtv_atsc_fpll.xml
deleted file mode 100644
index 00d28ce8b6..0000000000
--- a/gr-dtv/grc/dtv_atsc_fpll.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Receiver PLL
-###################################################
- -->
-<block>
- <name>ATSC Receiver FPLL</name>
- <key>dtv_atsc_fpll</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_fpll($rate)</make>
-
- <param>
- <name>Sample Rate</name>
- <key>rate</key>
- <type>float</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>float</type>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_fs_checker.block.yml b/gr-dtv/grc/dtv_atsc_fs_checker.block.yml
new file mode 100644
index 0000000000..fbf97a9255
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_fs_checker.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_fs_checker
+label: ATSC Field Sync Checker
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_fs_checker()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_fs_checker.xml b/gr-dtv/grc/dtv_atsc_fs_checker.xml
deleted file mode 100644
index 4c733d53b9..0000000000
--- a/gr-dtv/grc/dtv_atsc_fs_checker.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Field Sync Checker
-###################################################
- -->
-<block>
- <name>ATSC Field Sync Checker</name>
- <key>dtv_atsc_fs_checker</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_fs_checker()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_interleaver.block.yml b/gr-dtv/grc/dtv_atsc_interleaver.block.yml
new file mode 100644
index 0000000000..65f769d0e6
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_interleaver.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_interleaver
+label: ATSC Interleaver
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_interleaver()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_interleaver.xml b/gr-dtv/grc/dtv_atsc_interleaver.xml
deleted file mode 100644
index 3b1045c580..0000000000
--- a/gr-dtv/grc/dtv_atsc_interleaver.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Interleaver
-###################################################
- -->
-<block>
- <name>ATSC Interleaver</name>
- <key>dtv_atsc_interleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_interleaver()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_pad.block.yml b/gr-dtv/grc/dtv_atsc_pad.block.yml
new file mode 100644
index 0000000000..a25d866f79
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_pad.block.yml
@@ -0,0 +1,17 @@
+id: dtv_atsc_pad
+label: ATSC Pad
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_pad()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_pad.xml b/gr-dtv/grc/dtv_atsc_pad.xml
deleted file mode 100644
index 87b8921e35..0000000000
--- a/gr-dtv/grc/dtv_atsc_pad.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Pad
-###################################################
- -->
-<block>
- <name>ATSC Pad</name>
- <key>dtv_atsc_pad</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_pad()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_randomizer.block.yml b/gr-dtv/grc/dtv_atsc_randomizer.block.yml
new file mode 100644
index 0000000000..909fad6ec3
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_randomizer.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_randomizer
+label: ATSC Randomizer
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_randomizer()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_randomizer.xml b/gr-dtv/grc/dtv_atsc_randomizer.xml
deleted file mode 100644
index 73c0991e1e..0000000000
--- a/gr-dtv/grc/dtv_atsc_randomizer.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Randomizer
-###################################################
- -->
-<block>
- <name>ATSC Randomizer</name>
- <key>dtv_atsc_randomizer</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_randomizer()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml b/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml
new file mode 100644
index 0000000000..b65eb33fca
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_rs_decoder
+label: "ATSC Reed\u2013Solomon Decoder"
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_rs_decoder()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_rs_decoder.xml b/gr-dtv/grc/dtv_atsc_rs_decoder.xml
deleted file mode 100644
index 18a3053f00..0000000000
--- a/gr-dtv/grc/dtv_atsc_rs_decoder.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Reed–Solomon Decoder
-###################################################
- -->
-<block>
- <name>ATSC Reed–Solomon Decoder</name>
- <key>dtv_atsc_rs_decoder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_rs_decoder()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml b/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml
new file mode 100644
index 0000000000..04d1ff3683
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_rs_encoder
+label: ATSC RS Encoder
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_rs_encoder()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_rs_encoder.xml b/gr-dtv/grc/dtv_atsc_rs_encoder.xml
deleted file mode 100644
index af35523e05..0000000000
--- a/gr-dtv/grc/dtv_atsc_rs_encoder.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Reed-Solomom Encoder
-###################################################
- -->
-<block>
- <name>ATSC RS Encoder</name>
- <key>dtv_atsc_rs_encoder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_rs_encoder()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_rx.block.yml b/gr-dtv/grc/dtv_atsc_rx.block.yml
new file mode 100644
index 0000000000..499c196e20
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_rx.block.yml
@@ -0,0 +1,24 @@
+id: dtv_atsc_rx
+label: ATSC Receive Pipeline
+
+parameters:
+- id: rate
+ label: Input Rate
+ dtype: float
+- id: sps
+ label: Oversampling Ratio
+ dtype: float
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_rx(${rate},${sps})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_rx.xml b/gr-dtv/grc/dtv_atsc_rx.xml
deleted file mode 100644
index 900769609f..0000000000
--- a/gr-dtv/grc/dtv_atsc_rx.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Receive Pipeline
-###################################################
- -->
-<block>
- <name>ATSC Receive Pipeline</name>
- <key>dtv_atsc_rx</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_rx($rate,$sps)</make>
-
- <param>
- <name>Input Rate</name>
- <key>rate</key>
- <type>float</type>
- </param>
-
- <param>
- <name>Oversampling Ratio</name>
- <key>sps</key>
- <type>float</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_rx_filter.block.yml b/gr-dtv/grc/dtv_atsc_rx_filter.block.yml
new file mode 100644
index 0000000000..0a352727ce
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_rx_filter.block.yml
@@ -0,0 +1,24 @@
+id: dtv_atsc_rx_filter
+label: ATSC RX Filter
+
+parameters:
+- id: rate
+ label: Input Rate
+ dtype: float
+- id: sps
+ label: Oversampling Ratio
+ dtype: float
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_rx_filter(${rate},${sps})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_rx_filter.xml b/gr-dtv/grc/dtv_atsc_rx_filter.xml
deleted file mode 100644
index bc8bf0914a..0000000000
--- a/gr-dtv/grc/dtv_atsc_rx_filter.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC RX Filter
-###################################################
- -->
-<block>
- <name>ATSC RX Filter</name>
- <key>dtv_atsc_rx_filter</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_rx_filter($rate,$sps)</make>
-
- <param>
- <name>Input Rate</name>
- <key>rate</key>
- <type>float</type>
- </param>
-
- <param>
- <name>Oversampling Ratio</name>
- <key>sps</key>
- <type>float</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_sync.block.yml b/gr-dtv/grc/dtv_atsc_sync.block.yml
new file mode 100644
index 0000000000..b4a3ac3d99
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_sync.block.yml
@@ -0,0 +1,22 @@
+id: dtv_atsc_sync
+label: ATSC Receiver SYNC
+
+parameters:
+- id: rate
+ label: Sample Rate
+ dtype: float
+
+inputs:
+- domain: stream
+ dtype: float
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_sync(${rate})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_sync.xml b/gr-dtv/grc/dtv_atsc_sync.xml
deleted file mode 100644
index a9528f84a0..0000000000
--- a/gr-dtv/grc/dtv_atsc_sync.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Receiver Sync
-###################################################
- -->
-<block>
- <name>ATSC Receiver SYNC</name>
- <key>dtv_atsc_sync</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_sync($rate)</make>
-
- <param>
- <name>Sample Rate</name>
- <key>rate</key>
- <type>float</type>
- </param>
-
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml b/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml
new file mode 100644
index 0000000000..417e3f19d6
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_trellis_encoder
+label: ATSC Trellis Encoder
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_trellis_encoder()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_trellis_encoder.xml b/gr-dtv/grc/dtv_atsc_trellis_encoder.xml
deleted file mode 100644
index 2189075008..0000000000
--- a/gr-dtv/grc/dtv_atsc_trellis_encoder.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Trellis Encoder
-###################################################
- -->
-<block>
- <name>ATSC Trellis Encoder</name>
- <key>dtv_atsc_trellis_encoder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_trellis_encoder()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>256</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml b/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml
new file mode 100644
index 0000000000..bb77b072be
--- /dev/null
+++ b/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml
@@ -0,0 +1,18 @@
+id: dtv_atsc_viterbi_decoder
+label: ATSC Viterbi Decoder
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 4096
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 256
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.atsc_viterbi_decoder()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml b/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml
deleted file mode 100644
index 23d58d08af..0000000000
--- a/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## ATSC Equalizer
-###################################################
- -->
-<block>
- <name>ATSC Viterbi Decoder</name>
- <key>dtv_atsc_viterbi_decoder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.atsc_viterbi_decoder()</make>
-
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>4096</vlen>
- </sink>
-
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>256</vlen>
- </source>
-
-</block>
diff --git a/gr-dtv/grc/dtv_block_tree.xml b/gr-dtv/grc/dtv_block_tree.xml
deleted file mode 100644
index 8dcbd18127..0000000000
--- a/gr-dtv/grc/dtv_block_tree.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright 2014,2015,2016 Free Software Foundation, Inc.
-
- This file is part of GNU Radio
-
- GNU Radio is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GNU Radio is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Radio; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street,
- Boston, MA 02110-1301, USA.
--->
-
-<!--
-###################################################
-##Block Tree for GR DTV blocks.
-###################################################
- -->
-<cat>
- <name>[Core]</name>
- <cat>
- <name>Digital Television</name>
- <cat>
- <name>ATSC</name>
- <block>dtv_atsc_deinterleaver</block>
- <block>dtv_atsc_depad</block>
- <block>dtv_atsc_derandomizer</block>
- <block>dtv_atsc_equalizer</block>
- <block>dtv_atsc_fpll</block>
- <block>dtv_atsc_fs_checker</block>
- <block>dtv_atsc_rs_decoder</block>
- <block>dtv_atsc_rx</block>
- <block>dtv_atsc_rx_filter</block>
- <block>dtv_atsc_sync</block>
- <block>dtv_atsc_viterbi_decoder</block>
- <block>dtv_atsc_pad</block>
- <block>dtv_atsc_randomizer</block>
- <block>dtv_atsc_rs_encoder</block>
- <block>dtv_atsc_interleaver</block>
- <block>dtv_atsc_trellis_encoder</block>
- <block>dtv_atsc_field_sync_mux</block>
- </cat>
- <cat>
- <name>DVB</name>
- <block>dtv_dvb_bbheader_bb</block>
- <block>dtv_dvb_bbscrambler_bb</block>
- <block>dtv_dvb_bch_bb</block>
- <block>dtv_dvb_ldpc_bb</block>
- </cat>
- <cat>
- <name>DVB-T2</name>
- <block>dtv_dvbt2_interleaver_bb</block>
- <block>dtv_dvbt2_modulator_bc</block>
- <block>dtv_dvbt2_cellinterleaver_cc</block>
- <block>dtv_dvbt2_framemapper_cc</block>
- <block>dtv_dvbt2_freqinterleaver_cc</block>
- <block>dtv_dvbt2_pilotgenerator_cc</block>
- <block>dtv_dvbt2_paprtr_cc</block>
- <block>dtv_dvbt2_p1insertion_cc</block>
- <block>dtv_dvbt2_miso_cc</block>
- </cat>
- <cat>
- <name>DVB-S2</name>
- <block>dtv_dvbs2_interleaver_bb</block>
- <block>dtv_dvbs2_modulator_bc</block>
- <block>dtv_dvbs2_physical_cc</block>
- </cat>
- <cat>
- <name>DVB-T</name>
- <block>dtv_dvbt_energy_dispersal</block>
- <block>dtv_dvbt_reed_solomon_enc</block>
- <block>dtv_dvbt_convolutional_interleaver</block>
- <block>dtv_dvbt_inner_coder</block>
- <block>dtv_dvbt_bit_inner_interleaver</block>
- <block>dtv_dvbt_symbol_inner_interleaver</block>
- <block>dtv_dvbt_map</block>
- <block>dtv_dvbt_reference_signals</block>
- <block>dtv_dvbt_ofdm_sym_acquisition</block>
- <block>dtv_dvbt_demod_reference_signals</block>
- <block>dtv_dvbt_demap</block>
- <block>dtv_dvbt_bit_inner_deinterleaver</block>
- <block>dtv_dvbt_viterbi_decoder</block>
- <block>dtv_dvbt_convolutional_deinterleaver</block>
- <block>dtv_dvbt_reed_solomon_dec</block>
- <block>dtv_dvbt_energy_descramble</block>
- </cat>
- <cat>
- <name>ITU-T J.83B</name>
- <block>dtv_catv_transport_framing_enc_bb</block>
- <block>dtv_catv_reed_solomon_enc_bb</block>
- <block>dtv_catv_randomizer_bb</block>
- <block>dtv_catv_frame_sync_enc_bb</block>
- <block>dtv_catv_trellis_enc_bb</block>
- </cat>
- </cat>
-</cat>
diff --git a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml
new file mode 100644
index 0000000000..d629a16694
--- /dev/null
+++ b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml
@@ -0,0 +1,29 @@
+id: dtv_catv_frame_sync_enc_bb
+label: Frame Sync Encoder
+
+parameters:
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [CATV_MOD_64QAM, CATV_MOD_256QAM]
+ option_labels: [64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM]
+- id: ctrlword
+ label: Control Word
+ dtype: int
+ default: '6'
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.catv_frame_sync_enc_bb(${constellation.val}, ${ctrlword})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml
deleted file mode 100644
index 11f05164b3..0000000000
--- a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Frame Sync Encoder
-###################################################
- -->
-<block>
- <name>Frame Sync Encoder</name>
- <key>dtv_catv_frame_sync_enc_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.catv_frame_sync_enc_bb($constellation.val, $ctrlword)</make>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>64QAM</name>
- <key>CATV_MOD_64QAM</key>
- <opt>val:dtv.CATV_MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>CATV_MOD_256QAM</key>
- <opt>val:dtv.CATV_MOD_256QAM</opt>
- </option>
- </param>
- <param>
- <name>Control Word</name>
- <key>ctrlword</key>
- <value>6</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml b/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml
new file mode 100644
index 0000000000..1be423454d
--- /dev/null
+++ b/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml
@@ -0,0 +1,25 @@
+id: dtv_catv_randomizer_bb
+label: Randomizer
+
+parameters:
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [CATV_MOD_64QAM, CATV_MOD_256QAM]
+ option_labels: [64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.catv_randomizer_bb(${constellation.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_catv_randomizer_bb.xml b/gr-dtv/grc/dtv_catv_randomizer_bb.xml
deleted file mode 100644
index d0da5a2516..0000000000
--- a/gr-dtv/grc/dtv_catv_randomizer_bb.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Randomizer
-###################################################
- -->
-<block>
- <name>Randomizer</name>
- <key>dtv_catv_randomizer_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.catv_randomizer_bb($constellation.val)</make>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>64QAM</name>
- <key>CATV_MOD_64QAM</key>
- <opt>val:dtv.CATV_MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>CATV_MOD_256QAM</key>
- <opt>val:dtv.CATV_MOD_256QAM</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml
new file mode 100644
index 0000000000..fa51b3bab8
--- /dev/null
+++ b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml
@@ -0,0 +1,16 @@
+id: dtv_catv_reed_solomon_enc_bb
+label: Reed-Solomon Encoder
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.catv_reed_solomon_enc_bb()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml
deleted file mode 100644
index a5dfdc2a5a..0000000000
--- a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Reed Solomon Encoder
-###################################################
- -->
-<block>
- <name>Reed-Solomon Encoder</name>
- <key>dtv_catv_reed_solomon_enc_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.catv_reed_solomon_enc_bb()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml
new file mode 100644
index 0000000000..3f269d1704
--- /dev/null
+++ b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml
@@ -0,0 +1,16 @@
+id: dtv_catv_transport_framing_enc_bb
+label: Transport Framing Encoder
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.catv_transport_framing_enc_bb()
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml
deleted file mode 100644
index d0b6bf382b..0000000000
--- a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Transport Framing Encoder
-###################################################
- -->
-<block>
- <name>Transport Framing Encoder</name>
- <key>dtv_catv_transport_framing_enc_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.catv_transport_framing_enc_bb()</make>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml
new file mode 100644
index 0000000000..aafba8ed2d
--- /dev/null
+++ b/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml
@@ -0,0 +1,25 @@
+id: dtv_catv_trellis_enc_bb
+label: Trellis Encoder
+
+parameters:
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [CATV_MOD_64QAM, CATV_MOD_256QAM]
+ option_labels: [64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.catv_trellis_enc_bb(${constellation.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml b/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml
deleted file mode 100644
index a1d2d4619c..0000000000
--- a/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Trellis Encoder
-###################################################
- -->
-<block>
- <name>Trellis Encoder</name>
- <key>dtv_catv_trellis_enc_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.catv_trellis_enc_bb($constellation.val)</make>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>64QAM</name>
- <key>CATV_MOD_64QAM</key>
- <opt>val:dtv.CATV_MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>CATV_MOD_256QAM</key>
- <opt>val:dtv.CATV_MOD_256QAM</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml b/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml
new file mode 100644
index 0000000000..7f51427af5
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml
@@ -0,0 +1,154 @@
+id: dtv_dvb_bbheader_bb
+label: BBheader
+
+parameters:
+- id: standard
+ label: Standard
+ dtype: enum
+ options: [STANDARD_DVBS2, STANDARD_DVBT2]
+ option_labels: [DVB-S2, DVB-T2]
+ option_attributes:
+ hide_dvbs2: ['', all]
+ hide_dvbt2: [all, '']
+ val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2]
+- id: framesize1
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ hide_medium: [all, all]
+ hide_normal: ['', all]
+ hide_short: [all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbt2 }
+- id: framesize2
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbs2 }
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6]
+ hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+ hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate4
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate5
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rolloff
+ label: Rolloff factor
+ dtype: enum
+ options: [RO_0_35, RO_0_25, RO_0_20, RO_0_15, RO_0_10, RO_0_05]
+ option_labels: ['0.35', '0.25', '0.20', '0.15', '0.10', '0.05']
+ option_attributes:
+ val: [dtv.RO_0_35, dtv.RO_0_25, dtv.RO_0_20, dtv.RO_0_15, dtv.RO_0_10, dtv.RO_0_05]
+ hide: ${ standard.hide_dvbs2 }
+- id: mode
+ label: Baseband Framing Mode
+ dtype: enum
+ options: [INPUTMODE_NORMAL, INPUTMODE_HIEFF]
+ option_labels: [Normal, High Efficiency]
+ option_attributes:
+ val: [dtv.INPUTMODE_NORMAL, dtv.INPUTMODE_HIEFF]
+ hide: ${ standard.hide_dvbt2 }
+- id: inband
+ label: In-band Signalling
+ dtype: enum
+ options: [INBAND_OFF, INBAND_ON]
+ option_labels: ['Off', Type B]
+ option_attributes:
+ hide_rate: [all, '']
+ val: [dtv.INBAND_OFF, dtv.INBAND_ON]
+ hide: ${ standard.hide_dvbt2 }
+- id: fecblocks
+ label: FEC blocks per frame
+ dtype: int
+ default: '168'
+ hide: ${ inband.hide_rate }
+- id: tsrate
+ label: Transport Stream Rate
+ dtype: int
+ default: '4000000'
+ hide: ${ inband.hide_rate }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvb_bbheader_bb(${standard.val}, \n% if str(standard) == 'STANDARD_DVBT2':\n\
+ ${framesize1.val}, \n% else:\n${framesize2.val}, \n% endif\n% if str(standard)\
+ \ == 'STANDARD_DVBT2':\n% if str(framesize1) == 'FECFRAME_NORMAL':\n${rate1.val},\
+ \ \n% else:\n${rate2.val}, \n% endif\n% else:\n% if str(framesize2) == 'FECFRAME_NORMAL':\n\
+ ${rate3.val}, \n% elif str(framesize2) == 'FECFRAME_MEDIUM':\n${rate4.val},\
+ \ \n% else:\n${rate5.val}, \n% endif\n% endif\n${rolloff.val}, ${mode.val},\
+ \ ${inband.val}, ${fecblocks}, ${tsrate})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvb_bbheader_bb.xml b/gr-dtv/grc/dtv_dvb_bbheader_bb.xml
deleted file mode 100644
index b18b87b604..0000000000
--- a/gr-dtv/grc/dtv_dvb_bbheader_bb.xml
+++ /dev/null
@@ -1,596 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB Baseband Header
-###################################################
- -->
-<block>
- <name>BBheader</name>
- <key>dtv_dvb_bbheader_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvb_bbheader_bb($standard.val, #slurp
-#if str($standard) == 'STANDARD_DVBT2'
-$framesize1.val, #slurp
-#else
-$framesize2.val, #slurp
-#end if
-#if str($standard) == 'STANDARD_DVBT2'
-#if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
-#else
-$rate2.val, #slurp
-#end if
-#else
-#if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val, #slurp
-#else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val, #slurp
-#else
-$rate5.val, #slurp
-#end if
-#end if
-$rolloff.val, $mode.val, $inband.val, $fecblocks, $tsrate)</make>
- <param>
- <name>Standard</name>
- <key>standard</key>
- <type>enum</type>
- <option>
- <name>DVB-S2</name>
- <key>STANDARD_DVBS2</key>
- <opt>val:dtv.STANDARD_DVBS2</opt>
- <opt>hide_dvbs2:</opt>
- <opt>hide_dvbt2:all</opt>
- </option>
- <option>
- <name>DVB-T2</name>
- <key>STANDARD_DVBT2</key>
- <opt>val:dtv.STANDARD_DVBT2</opt>
- <opt>hide_dvbs2:all</opt>
- <opt>hide_dvbt2:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize1</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize2</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate4</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate5</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <param>
- <name>Rolloff factor</name>
- <key>rolloff</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>0.35</name>
- <key>RO_0_35</key>
- <opt>val:dtv.RO_0_35</opt>
- </option>
- <option>
- <name>0.25</name>
- <key>RO_0_25</key>
- <opt>val:dtv.RO_0_25</opt>
- </option>
- <option>
- <name>0.20</name>
- <key>RO_0_20</key>
- <opt>val:dtv.RO_0_20</opt>
- </option>
- <option>
- <name>0.15</name>
- <key>RO_0_15</key>
- <opt>val:dtv.RO_0_15</opt>
- </option>
- <option>
- <name>0.10</name>
- <key>RO_0_10</key>
- <opt>val:dtv.RO_0_10</opt>
- </option>
- <option>
- <name>0.05</name>
- <key>RO_0_05</key>
- <opt>val:dtv.RO_0_05</opt>
- </option>
- </param>
- <param>
- <name>Baseband Framing Mode</name>
- <key>mode</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Normal</name>
- <key>INPUTMODE_NORMAL</key>
- <opt>val:dtv.INPUTMODE_NORMAL</opt>
- </option>
- <option>
- <name>High Efficiency</name>
- <key>INPUTMODE_HIEFF</key>
- <opt>val:dtv.INPUTMODE_HIEFF</opt>
- </option>
- </param>
- <param>
- <name>In-band Signalling</name>
- <key>inband</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Off</name>
- <key>INBAND_OFF</key>
- <opt>val:dtv.INBAND_OFF</opt>
- <opt>hide_rate:all</opt>
- </option>
- <option>
- <name>Type B</name>
- <key>INBAND_ON</key>
- <opt>val:dtv.INBAND_ON</opt>
- <opt>hide_rate:</opt>
- </option>
- </param>
- <param>
- <name>FEC blocks per frame</name>
- <key>fecblocks</key>
- <value>168</value>
- <type>int</type>
- <hide>$inband.hide_rate</hide>
- </param>
- <param>
- <name>Transport Stream Rate</name>
- <key>tsrate</key>
- <value>4000000</value>
- <type>int</type>
- <hide>$inband.hide_rate</hide>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml
new file mode 100644
index 0000000000..c1e2a7685b
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml
@@ -0,0 +1,118 @@
+id: dtv_dvb_bbscrambler_bb
+label: BBscrambler
+
+parameters:
+- id: standard
+ label: Standard
+ dtype: enum
+ options: [STANDARD_DVBS2, STANDARD_DVBT2]
+ option_labels: [DVB-S2, DVB-T2]
+ option_attributes:
+ hide_dvbs2: ['', all]
+ hide_dvbt2: [all, '']
+ val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2]
+- id: framesize1
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ hide_medium: [all, all]
+ hide_normal: ['', all]
+ hide_short: [all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbt2 }
+- id: framesize2
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbs2 }
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6]
+ hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+ hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate4
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate5
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvb_bbscrambler_bb(${standard.val}, \n% if str(standard) == 'STANDARD_DVBT2':\n\
+ ${framesize1.val}, \n% else:\n${framesize2.val}, \n% endif\n% if str(standard)\
+ \ == 'STANDARD_DVBT2':\n% if str(framesize1) == 'FECFRAME_NORMAL':\n${rate1.val}\n\
+ % else:\n${rate2.val}\n% endif\n% else:\n% if str(framesize2) == 'FECFRAME_NORMAL':\n\
+ ${rate3.val}\n% elif str(framesize2) == 'FECFRAME_MEDIUM':\n${rate4.val}\n\
+ % else:\n${rate5.val}\n% endif\n% endif\n)"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml
deleted file mode 100644
index 2fba572d39..0000000000
--- a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml
+++ /dev/null
@@ -1,512 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB Baseband Scrambler
-###################################################
- -->
-<block>
- <name>BBscrambler</name>
- <key>dtv_dvb_bbscrambler_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvb_bbscrambler_bb($standard.val, #slurp
-#if str($standard) == 'STANDARD_DVBT2'
-$framesize1.val, #slurp
-#else
-$framesize2.val, #slurp
-#end if
-#if str($standard) == 'STANDARD_DVBT2'
-#if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val#slurp
-#else
-$rate2.val#slurp
-#end if
-#else
-#if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val#slurp
-#else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val#slurp
-#else
-$rate5.val#slurp
-#end if
-#end if
-)</make>
- <param>
- <name>Standard</name>
- <key>standard</key>
- <type>enum</type>
- <option>
- <name>DVB-S2</name>
- <key>STANDARD_DVBS2</key>
- <opt>val:dtv.STANDARD_DVBS2</opt>
- <opt>hide_dvbs2:</opt>
- <opt>hide_dvbt2:all</opt>
- </option>
- <option>
- <name>DVB-T2</name>
- <key>STANDARD_DVBT2</key>
- <opt>val:dtv.STANDARD_DVBT2</opt>
- <opt>hide_dvbs2:all</opt>
- <opt>hide_dvbt2:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize1</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize2</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate4</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate5</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvb_bch_bb.block.yml b/gr-dtv/grc/dtv_dvb_bch_bb.block.yml
new file mode 100644
index 0000000000..bfde8654fa
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvb_bch_bb.block.yml
@@ -0,0 +1,118 @@
+id: dtv_dvb_bch_bb
+label: BCH Encoder
+
+parameters:
+- id: standard
+ label: Standard
+ dtype: enum
+ options: [STANDARD_DVBS2, STANDARD_DVBT2]
+ option_labels: [DVB-S2, DVB-T2]
+ option_attributes:
+ hide_dvbs2: ['', all]
+ hide_dvbt2: [all, '']
+ val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2]
+- id: framesize1
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ hide_medium: [all, all]
+ hide_normal: ['', all]
+ hide_short: [all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbt2 }
+- id: framesize2
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbs2 }
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6]
+ hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+ hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate4
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate5
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvb_bch_bb(${standard.val}, \n% if str(standard) == 'STANDARD_DVBT2':\n\
+ ${framesize1.val}, \n% else:\n${framesize2.val}, \n% endif\n% if str(standard)\
+ \ == 'STANDARD_DVBT2':\n% if str(framesize1) == 'FECFRAME_NORMAL':\n${rate1.val}\n\
+ % else:\n${rate2.val}\n% endif\n% else:\n% if str(framesize2) == 'FECFRAME_NORMAL':\n\
+ ${rate3.val}\n% elif str(framesize2) == 'FECFRAME_MEDIUM':\n${rate4.val}\n\
+ % else:\n${rate5.val}\n% endif\n% endif\n)"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvb_bch_bb.xml b/gr-dtv/grc/dtv_dvb_bch_bb.xml
deleted file mode 100644
index 01b446b7ca..0000000000
--- a/gr-dtv/grc/dtv_dvb_bch_bb.xml
+++ /dev/null
@@ -1,512 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB BCH Encoder
-###################################################
- -->
-<block>
- <name>BCH Encoder</name>
- <key>dtv_dvb_bch_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvb_bch_bb($standard.val, #slurp
-#if str($standard) == 'STANDARD_DVBT2'
-$framesize1.val, #slurp
-#else
-$framesize2.val, #slurp
-#end if
-#if str($standard) == 'STANDARD_DVBT2'
-#if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val#slurp
-#else
-$rate2.val#slurp
-#end if
-#else
-#if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val#slurp
-#else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val#slurp
-#else
-$rate5.val#slurp
-#end if
-#end if
-)</make>
- <param>
- <name>Standard</name>
- <key>standard</key>
- <type>enum</type>
- <option>
- <name>DVB-S2</name>
- <key>STANDARD_DVBS2</key>
- <opt>val:dtv.STANDARD_DVBS2</opt>
- <opt>hide_dvbs2:</opt>
- <opt>hide_dvbt2:all</opt>
- </option>
- <option>
- <name>DVB-T2</name>
- <key>STANDARD_DVBT2</key>
- <opt>val:dtv.STANDARD_DVBT2</opt>
- <opt>hide_dvbs2:all</opt>
- <opt>hide_dvbt2:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize1</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize2</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate4</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate5</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml b/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml
new file mode 100644
index 0000000000..435e039d51
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml
@@ -0,0 +1,126 @@
+id: dtv_dvb_ldpc_bb
+label: LDPC Encoder
+
+parameters:
+- id: standard
+ label: Standard
+ dtype: enum
+ options: [STANDARD_DVBS2, STANDARD_DVBT2]
+ option_labels: [DVB-S2, DVB-T2]
+ option_attributes:
+ hide_dvbs2: ['', all]
+ hide_dvbt2: [all, '']
+ val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2]
+- id: framesize1
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ hide_medium: [all, all]
+ hide_normal: ['', all]
+ hide_short: [all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbt2 }
+- id: framesize2
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+ hide: ${ standard.hide_dvbs2 }
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6]
+ hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+ hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all')
+ }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate4
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: rate5
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all')
+ }
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_OTHER, MOD_128APSK]
+ option_labels: [Other, 128APSK]
+ option_attributes:
+ val: [dtv.MOD_OTHER, dtv.MOD_128APSK]
+ hide: ${ standard.hide_dvbs2 }
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvb_ldpc_bb(${standard.val}, \n% if str(standard) == 'STANDARD_DVBT2':\n\
+ ${framesize1.val}, \n% else:\n${framesize2.val}, \n% endif\n% if str(standard)\
+ \ == 'STANDARD_DVBT2':\n% if str(framesize1) == 'FECFRAME_NORMAL':\n${rate1.val},\
+ \ \n% else:\n${rate2.val}, \n% endif\n% else:\n% if str(framesize2) == 'FECFRAME_NORMAL':\n\
+ ${rate3.val}, \n% elif str(framesize2) == 'FECFRAME_MEDIUM':\n${rate4.val},\
+ \ \n% else:\n${rate5.val}, \n% endif\n% endif\n${constellation.val})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvb_ldpc_bb.xml b/gr-dtv/grc/dtv_dvb_ldpc_bb.xml
deleted file mode 100644
index f1cff16091..0000000000
--- a/gr-dtv/grc/dtv_dvb_ldpc_bb.xml
+++ /dev/null
@@ -1,528 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB LDPC Encoder
-###################################################
- -->
-<block>
- <name>LDPC Encoder</name>
- <key>dtv_dvb_ldpc_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvb_ldpc_bb($standard.val, #slurp
-#if str($standard) == 'STANDARD_DVBT2'
-$framesize1.val, #slurp
-#else
-$framesize2.val, #slurp
-#end if
-#if str($standard) == 'STANDARD_DVBT2'
-#if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
-#else
-$rate2.val, #slurp
-#end if
-#else
-#if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val, #slurp
-#else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val, #slurp
-#else
-$rate5.val, #slurp
-#end if
-#end if
-$constellation.val)</make>
- <param>
- <name>Standard</name>
- <key>standard</key>
- <type>enum</type>
- <option>
- <name>DVB-S2</name>
- <key>STANDARD_DVBS2</key>
- <opt>val:dtv.STANDARD_DVBS2</opt>
- <opt>hide_dvbs2:</opt>
- <opt>hide_dvbt2:all</opt>
- </option>
- <option>
- <name>DVB-T2</name>
- <key>STANDARD_DVBT2</key>
- <opt>val:dtv.STANDARD_DVBT2</opt>
- <opt>hide_dvbs2:all</opt>
- <opt>hide_dvbt2:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize1</key>
- <type>enum</type>
- <hide>$standard.hide_dvbt2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>FECFRAME size</name>
- <key>framesize2</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate4</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate5</key>
- <type>enum</type>
- <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <hide>$standard.hide_dvbs2</hide>
- <option>
- <name>Other</name>
- <key>MOD_OTHER</key>
- <opt>val:dtv.MOD_OTHER</opt>
- </option>
- <option>
- <name>128APSK</name>
- <key>MOD_128APSK</key>
- <opt>val:dtv.MOD_128APSK</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml
new file mode 100644
index 0000000000..ad9c79c1b8
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml
@@ -0,0 +1,86 @@
+id: dtv_dvbs2_interleaver_bb
+label: Interleaver
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ framesize.hide_normal }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ framesize.hide_medium }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ framesize.hide_short }
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK,
+ MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK,
+ MOD_128APSK, MOD_256APSK, MOD_BPSK, MOD_BPSK_SF2]
+ option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK,
+ 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, PI/2 BPSK, PI/2
+ BPSK-SF2]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK,
+ dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK,
+ dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK,
+ dtv.MOD_BPSK, dtv.MOD_BPSK_SF2]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbs2_interleaver_bb(${framesize.val}, \n% if str(framesize) == 'FECFRAME_NORMAL':\n\
+ ${rate1.val}, \n% elif str(framesize) == 'FECFRAME_MEDIUM':\n${rate2.val},\
+ \ \n% else:\n${rate3.val}, \n% endif\n${constellation.val})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml
deleted file mode 100644
index 675f70d26a..0000000000
--- a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml
+++ /dev/null
@@ -1,455 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-S2 Bit Interleaver
-###################################################
- -->
-<block>
- <name>Interleaver</name>
- <key>dtv_dvbs2_interleaver_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbs2_interleaver_bb($framesize.val, #slurp
-#if str($framesize) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
-#else if str($framesize) == 'FECFRAME_MEDIUM'
-$rate2.val, #slurp
-#else
-$rate3.val, #slurp
-#end if
-$constellation.val)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>$framesize.hide_normal</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>$framesize.hide_medium</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>$framesize.hide_short</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>8PSK</name>
- <key>MOD_8PSK</key>
- <opt>val:dtv.MOD_8PSK</opt>
- </option>
- <option>
- <name>8APSK</name>
- <key>MOD_8APSK</key>
- <opt>val:dtv.MOD_8APSK</opt>
- </option>
- <option>
- <name>16APSK</name>
- <key>MOD_16APSK</key>
- <opt>val:dtv.MOD_16APSK</opt>
- </option>
- <option>
- <name>8+8APSK</name>
- <key>MOD_8_8APSK</key>
- <opt>val:dtv.MOD_8_8APSK</opt>
- </option>
- <option>
- <name>32APSK</name>
- <key>MOD_32APSK</key>
- <opt>val:dtv.MOD_32APSK</opt>
- </option>
- <option>
- <name>4+12+16rbAPSK</name>
- <key>MOD_4_12_16APSK</key>
- <opt>val:dtv.MOD_4_12_16APSK</opt>
- </option>
- <option>
- <name>4+8+4+16APSK</name>
- <key>MOD_4_8_4_16APSK</key>
- <opt>val:dtv.MOD_4_8_4_16APSK</opt>
- </option>
- <option>
- <name>64APSK</name>
- <key>MOD_64APSK</key>
- <opt>val:dtv.MOD_64APSK</opt>
- </option>
- <option>
- <name>8+16+20+20APSK</name>
- <key>MOD_8_16_20_20APSK</key>
- <opt>val:dtv.MOD_8_16_20_20APSK</opt>
- </option>
- <option>
- <name>4+12+20+28APSK</name>
- <key>MOD_4_12_20_28APSK</key>
- <opt>val:dtv.MOD_4_12_20_28APSK</opt>
- </option>
- <option>
- <name>128APSK</name>
- <key>MOD_128APSK</key>
- <opt>val:dtv.MOD_128APSK</opt>
- </option>
- <option>
- <name>256APSK</name>
- <key>MOD_256APSK</key>
- <opt>val:dtv.MOD_256APSK</opt>
- </option>
- <option>
- <name>PI/2 BPSK</name>
- <key>MOD_BPSK</key>
- <opt>val:dtv.MOD_BPSK</opt>
- </option>
- <option>
- <name>PI/2 BPSK-SF2</name>
- <key>MOD_BPSK_SF2</key>
- <opt>val:dtv.MOD_BPSK_SF2</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml b/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml
new file mode 100644
index 0000000000..07d6cd58ff
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml
@@ -0,0 +1,102 @@
+id: dtv_dvbs2_modulator_bc
+label: DVB-S2X Modulator
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+ hide: ${ constellation.hide_dvb }
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation)
+ == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_normal)
+ }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation)
+ == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_medium)
+ }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation)
+ == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_short)
+ }
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK,
+ MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK,
+ MOD_128APSK, MOD_256APSK, MOD_64QAM, MOD_256QAM, MOD_BPSK, MOD_BPSK_SF2, MOD_8VSB]
+ option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK,
+ 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, 64QAM (ITU-T J.83B),
+ 256QAM (ITU-T J.83B), PI/2 BPSK, PI/2 BPSK-SF2, 8VSB (ATSC)]
+ option_attributes:
+ hide_dvb: ['', '', '', '', '', '', '', '', '', '', '', '', '', all, all, '',
+ '', all]
+ val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK,
+ dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK,
+ dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK,
+ dtv.MOD_64QAM, dtv.MOD_256QAM, dtv.MOD_BPSK, dtv.MOD_BPSK_SF2, dtv.MOD_8VSB]
+- id: interpolation
+ label: 2X Interpolation
+ dtype: enum
+ options: [INTERPOLATION_OFF, INTERPOLATION_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.INTERPOLATION_OFF, dtv.INTERPOLATION_ON]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbs2_modulator_bc(${framesize.val},\n% if str(framesize) == 'FECFRAME_NORMAL':\n\
+ ${rate1.val}, \n% elif str(framesize) == 'FECFRAME_MEDIUM':\n${rate2.val},\
+ \ \n% else:\n${rate3.val}, \n% endif\n${constellation.val}, ${interpolation.val})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml b/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml
deleted file mode 100644
index d6b9f10048..0000000000
--- a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-S2X Modulator
-###################################################
- -->
-<block>
- <name>DVB-S2X Modulator</name>
- <key>dtv_dvbs2_modulator_bc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbs2_modulator_bc($framesize.val,
-#if str($framesize) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
-#else if str($framesize) == 'FECFRAME_MEDIUM'
-$rate2.val, #slurp
-#else
-$rate3.val, #slurp
-#end if
-$constellation.val, $interpolation.val)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <hide>$constellation.hide_dvb</hide>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_normal</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_medium</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_short</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>8PSK</name>
- <key>MOD_8PSK</key>
- <opt>val:dtv.MOD_8PSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>8APSK</name>
- <key>MOD_8APSK</key>
- <opt>val:dtv.MOD_8APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>16APSK</name>
- <key>MOD_16APSK</key>
- <opt>val:dtv.MOD_16APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>8+8APSK</name>
- <key>MOD_8_8APSK</key>
- <opt>val:dtv.MOD_8_8APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>32APSK</name>
- <key>MOD_32APSK</key>
- <opt>val:dtv.MOD_32APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>4+12+16rbAPSK</name>
- <key>MOD_4_12_16APSK</key>
- <opt>val:dtv.MOD_4_12_16APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>4+8+4+16APSK</name>
- <key>MOD_4_8_4_16APSK</key>
- <opt>val:dtv.MOD_4_8_4_16APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>64APSK</name>
- <key>MOD_64APSK</key>
- <opt>val:dtv.MOD_64APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>8+16+20+20APSK</name>
- <key>MOD_8_16_20_20APSK</key>
- <opt>val:dtv.MOD_8_16_20_20APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>4+12+20+28APSK</name>
- <key>MOD_4_12_20_28APSK</key>
- <opt>val:dtv.MOD_4_12_20_28APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>128APSK</name>
- <key>MOD_128APSK</key>
- <opt>val:dtv.MOD_128APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>256APSK</name>
- <key>MOD_256APSK</key>
- <opt>val:dtv.MOD_256APSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>64QAM (ITU-T J.83B)</name>
- <key>MOD_64QAM</key>
- <opt>val:dtv.MOD_64QAM</opt>
- <opt>hide_dvb:all</opt>
- </option>
- <option>
- <name>256QAM (ITU-T J.83B)</name>
- <key>MOD_256QAM</key>
- <opt>val:dtv.MOD_256QAM</opt>
- <opt>hide_dvb:all</opt>
- </option>
- <option>
- <name>PI/2 BPSK</name>
- <key>MOD_BPSK</key>
- <opt>val:dtv.MOD_BPSK</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>PI/2 BPSK-SF2</name>
- <key>MOD_BPSK_SF2</key>
- <opt>val:dtv.MOD_BPSK_SF2</opt>
- <opt>hide_dvb:</opt>
- </option>
- <option>
- <name>8VSB (ATSC)</name>
- <key>MOD_8VSB</key>
- <opt>val:dtv.MOD_8VSB</opt>
- <opt>hide_dvb:all</opt>
- </option>
- </param>
- <param>
- <name>2X Interpolation</name>
- <key>interpolation</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>INTERPOLATION_OFF</key>
- <opt>val:dtv.INTERPOLATION_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>INTERPOLATION_ON</key>
- <opt>val:dtv.INTERPOLATION_ON</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml b/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml
new file mode 100644
index 0000000000..261b2f6b06
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml
@@ -0,0 +1,98 @@
+id: dtv_dvbs2_physical_cc
+label: Physical Layer Framer
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT]
+ option_labels: [Normal, Medium, Short]
+ option_attributes:
+ hide_medium: [all, '', all]
+ hide_normal: ['', all, all]
+ hide_short: [all, all, '']
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT]
+- id: rate1
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR,
+ C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30,
+ C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180,
+ C22_30, C135_180, C140_180, C7_9, C154_180]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR,
+ 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45,
+ 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180,
+ 140/180, 7/9, 154/180]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20,
+ dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45,
+ dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180,
+ dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180,
+ dtv.C140_180, dtv.C7_9, dtv.C154_180]
+ hide: ${ framesize.hide_normal }
+- id: rate2
+ label: Code rate
+ dtype: enum
+ options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM]
+ option_labels: [1/5, 11/45, 1/3]
+ option_attributes:
+ val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM]
+ hide: ${ framesize.hide_medium }
+- id: rate3
+ label: Code rate
+ dtype: enum
+ options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45,
+ C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2,
+ C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR]
+ option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15,
+ 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR,
+ 4/15 VL-SNR, 1/3 VL-SNR]
+ option_attributes:
+ val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4,
+ dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15,
+ dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2,
+ dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR]
+ hide: ${ framesize.hide_short }
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK,
+ MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK,
+ MOD_128APSK, MOD_256APSK, MOD_BPSK, MOD_BPSK_SF2]
+ option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK,
+ 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, PI/2 BPSK, PI/2
+ BPSK-SF2]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK,
+ dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK,
+ dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK,
+ dtv.MOD_BPSK, dtv.MOD_BPSK_SF2]
+- id: pilots
+ label: Pilots
+ dtype: enum
+ options: [PILOTS_OFF, PILOTS_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.PILOTS_OFF, dtv.PILOTS_ON]
+- id: goldcode
+ label: Gold Code
+ dtype: int
+ default: '0'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbs2_physical_cc(${framesize.val}, \n% if str(framesize) == 'FECFRAME_NORMAL':\n\
+ ${rate1.val}, \n% elif str(framesize) == 'FECFRAME_MEDIUM':\n${rate2.val},\
+ \ \n% else:\n${rate3.val}, \n% endif\n${constellation.val}, ${pilots.val},\
+ \ ${goldcode})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbs2_physical_cc.xml b/gr-dtv/grc/dtv_dvbs2_physical_cc.xml
deleted file mode 100644
index 91d03ae9ab..0000000000
--- a/gr-dtv/grc/dtv_dvbs2_physical_cc.xml
+++ /dev/null
@@ -1,476 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-S2 Physical Layer Framer
-###################################################
- -->
-<block>
- <name>Physical Layer Framer</name>
- <key>dtv_dvbs2_physical_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbs2_physical_cc($framesize.val, #slurp
-#if str($framesize) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
-#else if str($framesize) == 'FECFRAME_MEDIUM'
-$rate2.val, #slurp
-#else
-$rate3.val, #slurp
-#end if
-$constellation.val, $pilots.val, $goldcode)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- <opt>hide_normal:</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Medium</name>
- <key>FECFRAME_MEDIUM</key>
- <opt>val:dtv.FECFRAME_MEDIUM</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:</opt>
- <opt>hide_short:all</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- <opt>hide_normal:all</opt>
- <opt>hide_medium:all</opt>
- <opt>hide_short:</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate1</key>
- <type>enum</type>
- <hide>$framesize.hide_normal</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>9/10</name>
- <key>C9_10</key>
- <opt>val:dtv.C9_10</opt>
- </option>
- <option>
- <name>2/9 VL-SNR</name>
- <key>C2_9_VLSNR</key>
- <opt>val:dtv.C2_9_VLSNR</opt>
- </option>
- <option>
- <name>13/45</name>
- <key>C13_45</key>
- <opt>val:dtv.C13_45</opt>
- </option>
- <option>
- <name>9/20</name>
- <key>C9_20</key>
- <opt>val:dtv.C9_20</opt>
- </option>
- <option>
- <name>90/180</name>
- <key>C90_180</key>
- <opt>val:dtv.C90_180</opt>
- </option>
- <option>
- <name>96/180</name>
- <key>C96_180</key>
- <opt>val:dtv.C96_180</opt>
- </option>
- <option>
- <name>11/20</name>
- <key>C11_20</key>
- <opt>val:dtv.C11_20</opt>
- </option>
- <option>
- <name>100/180</name>
- <key>C100_180</key>
- <opt>val:dtv.C100_180</opt>
- </option>
- <option>
- <name>104/180</name>
- <key>C104_180</key>
- <opt>val:dtv.C104_180</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>18/30</name>
- <key>C18_30</key>
- <opt>val:dtv.C18_30</opt>
- </option>
- <option>
- <name>28/45</name>
- <key>C28_45</key>
- <opt>val:dtv.C28_45</opt>
- </option>
- <option>
- <name>23/36</name>
- <key>C23_36</key>
- <opt>val:dtv.C23_36</opt>
- </option>
- <option>
- <name>116/180</name>
- <key>C116_180</key>
- <opt>val:dtv.C116_180</opt>
- </option>
- <option>
- <name>20/30</name>
- <key>C20_30</key>
- <opt>val:dtv.C20_30</opt>
- </option>
- <option>
- <name>124/180</name>
- <key>C124_180</key>
- <opt>val:dtv.C124_180</opt>
- </option>
- <option>
- <name>25/36</name>
- <key>C25_36</key>
- <opt>val:dtv.C25_36</opt>
- </option>
- <option>
- <name>128/180</name>
- <key>C128_180</key>
- <opt>val:dtv.C128_180</opt>
- </option>
- <option>
- <name>13/18</name>
- <key>C13_18</key>
- <opt>val:dtv.C13_18</opt>
- </option>
- <option>
- <name>132/180</name>
- <key>C132_180</key>
- <opt>val:dtv.C132_180</opt>
- </option>
- <option>
- <name>22/30</name>
- <key>C22_30</key>
- <opt>val:dtv.C22_30</opt>
- </option>
- <option>
- <name>135/180</name>
- <key>C135_180</key>
- <opt>val:dtv.C135_180</opt>
- </option>
- <option>
- <name>140/180</name>
- <key>C140_180</key>
- <opt>val:dtv.C140_180</opt>
- </option>
- <option>
- <name>7/9</name>
- <key>C7_9</key>
- <opt>val:dtv.C7_9</opt>
- </option>
- <option>
- <name>154/180</name>
- <key>C154_180</key>
- <opt>val:dtv.C154_180</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate2</key>
- <type>enum</type>
- <hide>$framesize.hide_medium</hide>
- <option>
- <name>1/5</name>
- <key>C1_5_MEDIUM</key>
- <opt>val:dtv.C1_5_MEDIUM</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45_MEDIUM</key>
- <opt>val:dtv.C11_45_MEDIUM</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3_MEDIUM</key>
- <opt>val:dtv.C1_3_MEDIUM</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate3</key>
- <type>enum</type>
- <hide>$framesize.hide_short</hide>
- <option>
- <name>1/4</name>
- <key>C1_4</key>
- <opt>val:dtv.C1_4</opt>
- </option>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>8/9</name>
- <key>C8_9</key>
- <opt>val:dtv.C8_9</opt>
- </option>
- <option>
- <name>11/45</name>
- <key>C11_45</key>
- <opt>val:dtv.C11_45</opt>
- </option>
- <option>
- <name>4/15</name>
- <key>C4_15</key>
- <opt>val:dtv.C4_15</opt>
- </option>
- <option>
- <name>14/45</name>
- <key>C14_45</key>
- <opt>val:dtv.C14_45</opt>
- </option>
- <option>
- <name>7/15</name>
- <key>C7_15</key>
- <opt>val:dtv.C7_15</opt>
- </option>
- <option>
- <name>8/15</name>
- <key>C8_15</key>
- <opt>val:dtv.C8_15</opt>
- </option>
- <option>
- <name>26/45</name>
- <key>C26_45</key>
- <opt>val:dtv.C26_45</opt>
- </option>
- <option>
- <name>32/45</name>
- <key>C32_45</key>
- <opt>val:dtv.C32_45</opt>
- </option>
- <option>
- <name>1/5 VL-SNR SF2</name>
- <key>C1_5_VLSNR_SF2</key>
- <opt>val:dtv.C1_5_VLSNR_SF2</opt>
- </option>
- <option>
- <name>11/45 VL-SNR SF2</name>
- <key>C11_45_VLSNR_SF2</key>
- <opt>val:dtv.C11_45_VLSNR_SF2</opt>
- </option>
- <option>
- <name>1/5 VL-SNR</name>
- <key>C1_5_VLSNR</key>
- <opt>val:dtv.C1_5_VLSNR</opt>
- </option>
- <option>
- <name>4/15 VL-SNR</name>
- <key>C4_15_VLSNR</key>
- <opt>val:dtv.C4_15_VLSNR</opt>
- </option>
- <option>
- <name>1/3 VL-SNR</name>
- <key>C1_3_VLSNR</key>
- <opt>val:dtv.C1_3_VLSNR</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>8PSK</name>
- <key>MOD_8PSK</key>
- <opt>val:dtv.MOD_8PSK</opt>
- </option>
- <option>
- <name>8APSK</name>
- <key>MOD_8APSK</key>
- <opt>val:dtv.MOD_8APSK</opt>
- </option>
- <option>
- <name>16APSK</name>
- <key>MOD_16APSK</key>
- <opt>val:dtv.MOD_16APSK</opt>
- </option>
- <option>
- <name>8+8APSK</name>
- <key>MOD_8_8APSK</key>
- <opt>val:dtv.MOD_8_8APSK</opt>
- </option>
- <option>
- <name>32APSK</name>
- <key>MOD_32APSK</key>
- <opt>val:dtv.MOD_32APSK</opt>
- </option>
- <option>
- <name>4+12+16rbAPSK</name>
- <key>MOD_4_12_16APSK</key>
- <opt>val:dtv.MOD_4_12_16APSK</opt>
- </option>
- <option>
- <name>4+8+4+16APSK</name>
- <key>MOD_4_8_4_16APSK</key>
- <opt>val:dtv.MOD_4_8_4_16APSK</opt>
- </option>
- <option>
- <name>64APSK</name>
- <key>MOD_64APSK</key>
- <opt>val:dtv.MOD_64APSK</opt>
- </option>
- <option>
- <name>8+16+20+20APSK</name>
- <key>MOD_8_16_20_20APSK</key>
- <opt>val:dtv.MOD_8_16_20_20APSK</opt>
- </option>
- <option>
- <name>4+12+20+28APSK</name>
- <key>MOD_4_12_20_28APSK</key>
- <opt>val:dtv.MOD_4_12_20_28APSK</opt>
- </option>
- <option>
- <name>128APSK</name>
- <key>MOD_128APSK</key>
- <opt>val:dtv.MOD_128APSK</opt>
- </option>
- <option>
- <name>256APSK</name>
- <key>MOD_256APSK</key>
- <opt>val:dtv.MOD_256APSK</opt>
- </option>
- <option>
- <name>PI/2 BPSK</name>
- <key>MOD_BPSK</key>
- <opt>val:dtv.MOD_BPSK</opt>
- </option>
- <option>
- <name>PI/2 BPSK-SF2</name>
- <key>MOD_BPSK_SF2</key>
- <opt>val:dtv.MOD_BPSK_SF2</opt>
- </option>
- </param>
- <param>
- <name>Pilots</name>
- <key>pilots</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>PILOTS_OFF</key>
- <opt>val:dtv.PILOTS_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>PILOTS_ON</key>
- <opt>val:dtv.PILOTS_ON</opt>
- </option>
- </param>
- <param>
- <name>Gold Code</name>
- <key>goldcode</key>
- <value>0</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml
new file mode 100644
index 0000000000..4f292fca08
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml
@@ -0,0 +1,41 @@
+id: dtv_dvbt2_cellinterleaver_cc
+label: Cell/Time Interleaver
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM]
+ option_labels: [QPSK, 16QAM, 64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM]
+- id: fecblocks
+ label: FEC blocks per frame
+ dtype: int
+ default: '168'
+- id: tiblocks
+ label: TI blocks per frame
+ dtype: int
+ default: '3'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt2_cellinterleaver_cc(${framesize.val}, ${constellation.val}, ${fecblocks},
+ ${tiblocks})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml
deleted file mode 100644
index 0f3aa76f5e..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Cell and Time Interleaver
-###################################################
- -->
-<block>
- <name>Cell/Time Interleaver</name>
- <key>dtv_dvbt2_cellinterleaver_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_cellinterleaver_cc($framesize.val, $constellation.val, $fecblocks, $tiblocks)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>MOD_16QAM</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>MOD_64QAM</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>MOD_256QAM</key>
- <opt>val:dtv.MOD_256QAM</opt>
- </option>
- </param>
- <param>
- <name>FEC blocks per frame</name>
- <key>fecblocks</key>
- <value>168</value>
- <type>int</type>
- </param>
- <param>
- <name>TI blocks per frame</name>
- <key>tiblocks</key>
- <value>3</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml
new file mode 100644
index 0000000000..3459c13afb
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml
@@ -0,0 +1,203 @@
+id: dtv_dvbt2_framemapper_cc
+label: Frame Mapper
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+- id: rate
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM]
+ option_labels: [QPSK, 16QAM, 64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM]
+- id: rotation
+ label: Constellation rotation
+ dtype: enum
+ options: [ROTATION_OFF, ROTATION_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.ROTATION_OFF, dtv.ROTATION_ON]
+- id: fecblocks
+ label: FEC blocks per frame
+ dtype: int
+ default: '168'
+- id: tiblocks
+ label: TI blocks per frame
+ dtype: int
+ default: '3'
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize1
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 32K, 32K DVB-T2 GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+ hide: ${ (preamble1.hide_base if str(version) == 'VERSION_111' else preamble2.hide_base)
+ }
+- id: fftsize2
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, FFTSIZE_16K_T2GI]
+ option_labels: [2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI]
+ hide: ${ (preamble1.hide_lite if str(version) == 'VERSION_111' else preamble2.hide_lite)
+ }
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: l1constellation
+ label: L1 Constellation
+ dtype: enum
+ options: [L1_MOD_BPSK, L1_MOD_QPSK, L1_MOD_16QAM, L1_MOD_64QAM]
+ option_labels: [BPSK, QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.L1_MOD_BPSK, dtv.L1_MOD_QPSK, dtv.L1_MOD_16QAM, dtv.L1_MOD_64QAM]
+- id: pilotpattern
+ label: Pilot Pattern
+ dtype: enum
+ options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7,
+ PILOT_PP8]
+ option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8]
+ option_attributes:
+ val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5,
+ dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8]
+- id: t2frames
+ label: T2 Frames per Super-frame
+ dtype: int
+ default: '2'
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: paprmode1
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_111 }
+- id: paprmode2
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_131 }
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+- id: preamble1
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO]
+ option_labels: [T2 SISO, T2 MISO]
+ option_attributes:
+ hide_base: ['', '']
+ hide_lite: [all, all]
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO]
+ hide: ${ version.hide_111 }
+- id: preamble2
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO]
+ option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO]
+ option_attributes:
+ hide_base: ['', '', all, all]
+ hide_lite: [all, all, '', '']
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO,
+ dtv.PREAMBLE_T2_LITE_MISO]
+ hide: ${ version.hide_131 }
+- id: inputmode
+ label: Baseband Framing Mode
+ dtype: enum
+ options: [INPUTMODE_NORMAL, INPUTMODE_HIEFF]
+ option_labels: [Normal, High Efficiency]
+ option_attributes:
+ val: [dtv.INPUTMODE_NORMAL, dtv.INPUTMODE_HIEFF]
+ hide: ${ version.hide_131 }
+- id: reservedbiasbits
+ label: Reserved Bits Bias Balancing
+ dtype: enum
+ options: [RESERVED_OFF, RESERVED_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.RESERVED_OFF, dtv.RESERVED_ON]
+ hide: ${ version.hide_131 }
+- id: l1scrambled
+ label: L1-post Scrambling
+ dtype: enum
+ options: [L1_SCRAMBLED_OFF, L1_SCRAMBLED_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.L1_SCRAMBLED_OFF, dtv.L1_SCRAMBLED_ON]
+ hide: ${ version.hide_131 }
+- id: inband
+ label: In-band Signalling
+ dtype: enum
+ options: [INBAND_OFF, INBAND_ON]
+ option_labels: ['Off', Type B]
+ option_attributes:
+ val: [dtv.INBAND_OFF, dtv.INBAND_ON]
+ hide: ${ version.hide_131 }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_framemapper_cc(${framesize.val}, ${rate.val}, ${constellation.val},\
+ \ ${rotation.val}, ${fecblocks}, ${tiblocks}, ${carriermode.val}, \n% if str(version)\
+ \ == 'VERSION_111':\n${fftsize1.val}, \n% else:\n% if str(preamble2) == 'PREAMBLE_T2_SISO'\
+ \ or str(preamble2) == 'PREAMBLE_T2_MISO':\n${fftsize1.val}, \n% else:\n${fftsize2.val},\
+ \ \n% endif\n% endif\n${guardinterval.val}, ${l1constellation.val}, ${pilotpattern.val},\
+ \ ${t2frames}, ${numdatasyms}, \n% if str(version) == 'VERSION_111':\n${paprmode1.val},\
+ \ \n% else:\n${paprmode2.val}, \n% endif\n${version.val}, \n% if str(version)\
+ \ == 'VERSION_111':\n${preamble1.val}, \n% else:\n${preamble2.val}, \n% endif\n\
+ ${inputmode.val}, ${reservedbiasbits.val}, ${l1scrambled.val}, ${inband.val})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml
deleted file mode 100644
index e795c8a1dc..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml
+++ /dev/null
@@ -1,562 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Frame Mapper
-###################################################
- -->
-<block>
- <name>Frame Mapper</name>
- <key>dtv_dvbt2_framemapper_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_framemapper_cc($framesize.val, $rate.val, $constellation.val, $rotation.val, $fecblocks, $tiblocks, $carriermode.val, #slurp
-#if str($version) == 'VERSION_111'
-$fftsize1.val, #slurp
-#else
-#if str($preamble2) == 'PREAMBLE_T2_SISO' or str($preamble2) == 'PREAMBLE_T2_MISO'
-$fftsize1.val, #slurp
-#else
-$fftsize2.val, #slurp
-#end if
-#end if
-$guardinterval.val, $l1constellation.val, $pilotpattern.val, $t2frames, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$paprmode1.val, #slurp
-#else
-$paprmode2.val, #slurp
-#end if
-$version.val, #slurp
-#if str($version) == 'VERSION_111'
-$preamble1.val, #slurp
-#else
-$preamble2.val, #slurp
-#end if
-$inputmode.val, $reservedbiasbits.val, $l1scrambled.val, $inband.val)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate</key>
- <type>enum</type>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>MOD_16QAM</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>MOD_64QAM</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>MOD_256QAM</key>
- <opt>val:dtv.MOD_256QAM</opt>
- </option>
- </param>
- <param>
- <name>Constellation rotation</name>
- <key>rotation</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>ROTATION_OFF</key>
- <opt>val:dtv.ROTATION_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>ROTATION_ON</key>
- <opt>val:dtv.ROTATION_ON</opt>
- </option>
- </param>
- <param>
- <name>FEC blocks per frame</name>
- <key>fecblocks</key>
- <value>168</value>
- <type>int</type>
- </param>
- <param>
- <name>TI blocks per frame</name>
- <key>tiblocks</key>
- <value>3</value>
- <type>int</type>
- </param>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize1</key>
- <type>enum</type>
- <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_base else $preamble2.hide_base</hide>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize2</key>
- <type>enum</type>
- <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_lite else $preamble2.hide_lite</hide>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>L1 Constellation</name>
- <key>l1constellation</key>
- <type>enum</type>
- <option>
- <name>BPSK</name>
- <key>L1_MOD_BPSK</key>
- <opt>val:dtv.L1_MOD_BPSK</opt>
- </option>
- <option>
- <name>QPSK</name>
- <key>L1_MOD_QPSK</key>
- <opt>val:dtv.L1_MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>L1_MOD_16QAM</key>
- <opt>val:dtv.L1_MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>L1_MOD_64QAM</key>
- <opt>val:dtv.L1_MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Pilot Pattern</name>
- <key>pilotpattern</key>
- <type>enum</type>
- <option>
- <name>PP1</name>
- <key>PILOT_PP1</key>
- <opt>val:dtv.PILOT_PP1</opt>
- </option>
- <option>
- <name>PP2</name>
- <key>PILOT_PP2</key>
- <opt>val:dtv.PILOT_PP2</opt>
- </option>
- <option>
- <name>PP3</name>
- <key>PILOT_PP3</key>
- <opt>val:dtv.PILOT_PP3</opt>
- </option>
- <option>
- <name>PP4</name>
- <key>PILOT_PP4</key>
- <opt>val:dtv.PILOT_PP4</opt>
- </option>
- <option>
- <name>PP5</name>
- <key>PILOT_PP5</key>
- <opt>val:dtv.PILOT_PP5</opt>
- </option>
- <option>
- <name>PP6</name>
- <key>PILOT_PP6</key>
- <opt>val:dtv.PILOT_PP6</opt>
- </option>
- <option>
- <name>PP7</name>
- <key>PILOT_PP7</key>
- <opt>val:dtv.PILOT_PP7</opt>
- </option>
- <option>
- <name>PP8</name>
- <key>PILOT_PP8</key>
- <opt>val:dtv.PILOT_PP8</opt>
- </option>
- </param>
- <param>
- <name>T2 Frames per Super-frame</name>
- <key>t2frames</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>Off</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>P2 Only</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2-Lite SISO</name>
- <key>PREAMBLE_T2_LITE_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt>
- <opt>hide_lite:</opt>
- <opt>hide_base:all</opt>
- </option>
- <option>
- <name>T2-Lite MISO</name>
- <key>PREAMBLE_T2_LITE_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt>
- <opt>hide_lite:</opt>
- <opt>hide_base:all</opt>
- </option>
- </param>
- <param>
- <name>Baseband Framing Mode</name>
- <key>inputmode</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>Normal</name>
- <key>INPUTMODE_NORMAL</key>
- <opt>val:dtv.INPUTMODE_NORMAL</opt>
- </option>
- <option>
- <name>High Efficiency</name>
- <key>INPUTMODE_HIEFF</key>
- <opt>val:dtv.INPUTMODE_HIEFF</opt>
- </option>
- </param>
- <param>
- <name>Reserved Bits Bias Balancing</name>
- <key>reservedbiasbits</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>Off</name>
- <key>RESERVED_OFF</key>
- <opt>val:dtv.RESERVED_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>RESERVED_ON</key>
- <opt>val:dtv.RESERVED_ON</opt>
- </option>
- </param>
- <param>
- <name>L1-post Scrambling</name>
- <key>l1scrambled</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>Off</name>
- <key>L1_SCRAMBLED_OFF</key>
- <opt>val:dtv.L1_SCRAMBLED_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>L1_SCRAMBLED_ON</key>
- <opt>val:dtv.L1_SCRAMBLED_ON</opt>
- </option>
- </param>
- <param>
- <name>In-band Signalling</name>
- <key>inband</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>Off</name>
- <key>INBAND_OFF</key>
- <opt>val:dtv.INBAND_OFF</opt>
- </option>
- <option>
- <name>Type B</name>
- <key>INBAND_ON</key>
- <opt>val:dtv.INBAND_ON</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml
new file mode 100644
index 0000000000..990d4b8002
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml
@@ -0,0 +1,104 @@
+id: dtv_dvbt2_freqinterleaver_cc
+label: Frequency Interleaver
+
+parameters:
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2
+ GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+- id: pilotpattern
+ label: Pilot Pattern
+ dtype: enum
+ options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7,
+ PILOT_PP8]
+ option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8]
+ option_attributes:
+ val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5,
+ dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8]
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: paprmode1
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_111 }
+- id: paprmode2
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_131 }
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+- id: preamble1
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO]
+ option_labels: [T2 SISO, T2 MISO]
+ option_attributes:
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO]
+ hide: ${ version.hide_111 }
+- id: preamble2
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO]
+ option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO]
+ option_attributes:
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO,
+ dtv.PREAMBLE_T2_LITE_MISO]
+ hide: ${ version.hide_131 }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_freqinterleaver_cc(${carriermode.val}, ${fftsize.val}, ${pilotpattern.val},\
+ \ ${guardinterval.val}, ${numdatasyms}, \n% if str(version) == 'VERSION_111':\n\
+ ${paprmode1.val}, \n% else:\n${paprmode2.val}, \n% endif\n${version.val},\
+ \ \n% if str(version) == 'VERSION_111':\n${preamble1.val}\n% else:\n${preamble2.val}\n\
+ % endif\n)"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml
deleted file mode 100644
index bd7ba2bbfa..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml
+++ /dev/null
@@ -1,301 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Frequency Interleaver
-###################################################
- -->
-<block>
- <name>Frequency Interleaver</name>
- <key>dtv_dvbt2_freqinterleaver_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_freqinterleaver_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$paprmode1.val, #slurp
-#else
-$paprmode2.val, #slurp
-#end if
-$version.val, #slurp
-#if str($version) == 'VERSION_111'
-$preamble1.val#slurp
-#else
-$preamble2.val#slurp
-#end if
-)</make>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize</key>
- <type>enum</type>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>Pilot Pattern</name>
- <key>pilotpattern</key>
- <type>enum</type>
- <option>
- <name>PP1</name>
- <key>PILOT_PP1</key>
- <opt>val:dtv.PILOT_PP1</opt>
- </option>
- <option>
- <name>PP2</name>
- <key>PILOT_PP2</key>
- <opt>val:dtv.PILOT_PP2</opt>
- </option>
- <option>
- <name>PP3</name>
- <key>PILOT_PP3</key>
- <opt>val:dtv.PILOT_PP3</opt>
- </option>
- <option>
- <name>PP4</name>
- <key>PILOT_PP4</key>
- <opt>val:dtv.PILOT_PP4</opt>
- </option>
- <option>
- <name>PP5</name>
- <key>PILOT_PP5</key>
- <opt>val:dtv.PILOT_PP5</opt>
- </option>
- <option>
- <name>PP6</name>
- <key>PILOT_PP6</key>
- <opt>val:dtv.PILOT_PP6</opt>
- </option>
- <option>
- <name>PP7</name>
- <key>PILOT_PP7</key>
- <opt>val:dtv.PILOT_PP7</opt>
- </option>
- <option>
- <name>PP8</name>
- <key>PILOT_PP8</key>
- <opt>val:dtv.PILOT_PP8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>Off</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>P2 Only</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- </option>
- <option>
- <name>T2-Lite SISO</name>
- <key>PREAMBLE_T2_LITE_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt>
- </option>
- <option>
- <name>T2-Lite MISO</name>
- <key>PREAMBLE_T2_LITE_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml
new file mode 100644
index 0000000000..c7ca955996
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml
@@ -0,0 +1,40 @@
+id: dtv_dvbt2_interleaver_bb
+label: Bit Interleaver
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+- id: rate
+ label: Code rate
+ dtype: enum
+ options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6]
+ option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6]
+ option_attributes:
+ val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5,
+ dtv.C5_6]
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM]
+ option_labels: [QPSK, 16QAM, 64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: byte
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt2_interleaver_bb(${framesize.val}, ${rate.val}, ${constellation.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml
deleted file mode 100644
index 0e4e1eaf45..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Bit Interleaver
-###################################################
- -->
-<block>
- <name>Bit Interleaver</name>
- <key>dtv_dvbt2_interleaver_bb</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_interleaver_bb($framesize.val, $rate.val, $constellation.val)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>rate</key>
- <type>enum</type>
- <option>
- <name>1/3</name>
- <key>C1_3</key>
- <opt>val:dtv.C1_3</opt>
- </option>
- <option>
- <name>2/5</name>
- <key>C2_5</key>
- <opt>val:dtv.C2_5</opt>
- </option>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>3/5</name>
- <key>C3_5</key>
- <opt>val:dtv.C3_5</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>4/5</name>
- <key>C4_5</key>
- <opt>val:dtv.C4_5</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>MOD_16QAM</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>MOD_64QAM</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>MOD_256QAM</key>
- <opt>val:dtv.MOD_256QAM</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml
new file mode 100644
index 0000000000..81550c9c1f
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml
@@ -0,0 +1,86 @@
+id: dtv_dvbt2_miso_cc
+label: MISO Processing
+
+parameters:
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2
+ GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+- id: pilotpattern
+ label: Pilot Pattern
+ dtype: enum
+ options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7,
+ PILOT_PP8]
+ option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8]
+ option_attributes:
+ val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5,
+ dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8]
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: paprmode1
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_111 }
+- id: paprmode2
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_131 }
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '2'
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_miso_cc(${carriermode.val}, ${fftsize.val}, ${pilotpattern.val},\
+ \ ${guardinterval.val}, ${numdatasyms}, \n% if str(version) == 'VERSION_111':\n\
+ ${paprmode1.val}, \n% else:\n${paprmode2.val}, \n% endif\n)"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_miso_cc.xml b/gr-dtv/grc/dtv_dvbt2_miso_cc.xml
deleted file mode 100644
index 1ef4d2afc1..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_miso_cc.xml
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 MISO Processing
-###################################################
- -->
-<block>
- <name>MISO Processing</name>
- <key>dtv_dvbt2_miso_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_miso_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$paprmode1.val, #slurp
-#else
-$paprmode2.val, #slurp
-#end if
-)</make>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize</key>
- <type>enum</type>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>Pilot Pattern</name>
- <key>pilotpattern</key>
- <type>enum</type>
- <option>
- <name>PP1</name>
- <key>PILOT_PP1</key>
- <opt>val:dtv.PILOT_PP1</opt>
- </option>
- <option>
- <name>PP2</name>
- <key>PILOT_PP2</key>
- <opt>val:dtv.PILOT_PP2</opt>
- </option>
- <option>
- <name>PP3</name>
- <key>PILOT_PP3</key>
- <opt>val:dtv.PILOT_PP3</opt>
- </option>
- <option>
- <name>PP4</name>
- <key>PILOT_PP4</key>
- <opt>val:dtv.PILOT_PP4</opt>
- </option>
- <option>
- <name>PP5</name>
- <key>PILOT_PP5</key>
- <opt>val:dtv.PILOT_PP5</opt>
- </option>
- <option>
- <name>PP6</name>
- <key>PILOT_PP6</key>
- <opt>val:dtv.PILOT_PP6</opt>
- </option>
- <option>
- <name>PP7</name>
- <key>PILOT_PP7</key>
- <opt>val:dtv.PILOT_PP7</opt>
- </option>
- <option>
- <name>PP8</name>
- <key>PILOT_PP8</key>
- <opt>val:dtv.PILOT_PP8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>Off</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>P2 Only</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <nports>2</nports>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml b/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml
new file mode 100644
index 0000000000..5b1a9dd831
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml
@@ -0,0 +1,39 @@
+id: dtv_dvbt2_modulator_bc
+label: DVB-T2 Modulator
+
+parameters:
+- id: framesize
+ label: FECFRAME size
+ dtype: enum
+ options: [FECFRAME_NORMAL, FECFRAME_SHORT]
+ option_labels: [Normal, Short]
+ option_attributes:
+ val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT]
+- id: constellation
+ label: Constellation
+ dtype: enum
+ options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM]
+ option_labels: [QPSK, 16QAM, 64QAM, 256QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM]
+- id: rotation
+ label: Constellation rotation
+ dtype: enum
+ options: [ROTATION_OFF, ROTATION_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ val: [dtv.ROTATION_OFF, dtv.ROTATION_ON]
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt2_modulator_bc(${framesize.val}, ${constellation.val}, ${rotation.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml b/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml
deleted file mode 100644
index 6bf17b831d..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 QPSK/QAM Modulator
-###################################################
- -->
-<block>
- <name>DVB-T2 Modulator</name>
- <key>dtv_dvbt2_modulator_bc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_modulator_bc($framesize.val, $constellation.val, $rotation.val)</make>
- <param>
- <name>FECFRAME size</name>
- <key>framesize</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>FECFRAME_NORMAL</key>
- <opt>val:dtv.FECFRAME_NORMAL</opt>
- </option>
- <option>
- <name>Short</name>
- <key>FECFRAME_SHORT</key>
- <opt>val:dtv.FECFRAME_SHORT</opt>
- </option>
- </param>
- <param>
- <name>Constellation</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>MOD_QPSK</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>MOD_16QAM</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>MOD_64QAM</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- <option>
- <name>256QAM</name>
- <key>MOD_256QAM</key>
- <opt>val:dtv.MOD_256QAM</opt>
- </option>
- </param>
- <param>
- <name>Constellation rotation</name>
- <key>rotation</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>ROTATION_OFF</key>
- <opt>val:dtv.ROTATION_OFF</opt>
- </option>
- <option>
- <name>On</name>
- <key>ROTATION_ON</key>
- <opt>val:dtv.ROTATION_ON</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml
new file mode 100644
index 0000000000..ad9ab8519d
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml
@@ -0,0 +1,106 @@
+id: dtv_dvbt2_p1insertion_cc
+label: P1 Symbol Insertion
+
+parameters:
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize1
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 32K, 32K DVB-T2 GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+ hide: ${ (preamble1.hide_base if str(version) == 'VERSION_111' else preamble2.hide_base)
+ }
+- id: fftsize2
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, FFTSIZE_16K_T2GI]
+ option_labels: [2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI]
+ hide: ${ (preamble1.hide_lite if str(version) == 'VERSION_111' else preamble2.hide_lite)
+ }
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+- id: preamble1
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO]
+ option_labels: [T2 SISO, T2 MISO]
+ option_attributes:
+ hide_base: ['', '']
+ hide_lite: [all, all]
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO]
+ hide: ${ version.hide_111 }
+- id: preamble2
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO]
+ option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO]
+ option_attributes:
+ hide_base: ['', '', all, all]
+ hide_lite: [all, all, '', '']
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO,
+ dtv.PREAMBLE_T2_LITE_MISO]
+ hide: ${ version.hide_131 }
+- id: showlevels
+ label: Show Peak IQ Levels
+ dtype: enum
+ options: [SHOWLEVELS_OFF, SHOWLEVELS_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ hide_vclip: [all, '']
+ val: [dtv.SHOWLEVELS_OFF, dtv.SHOWLEVELS_ON]
+- id: vclip
+ label: Vclip
+ dtype: float
+ default: '3.3'
+ hide: ${ showlevels.hide_vclip }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_p1insertion_cc(${carriermode.val}, \n% if str(version) == 'VERSION_111':\n\
+ ${fftsize1.val}, \n% else:\n% if str(preamble2) == 'PREAMBLE_T2_SISO' or str(preamble2)\
+ \ == 'PREAMBLE_T2_MISO':\n${fftsize1.val}, \n% else:\n${fftsize2.val}, \n\
+ % endif\n% endif\n${guardinterval.val}, ${numdatasyms}, \n% if str(version)\
+ \ == 'VERSION_111':\n${preamble1.val}, \n% else:\n${preamble2.val}, \n% endif\n\
+ ${showlevels.val}, ${vclip})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml
deleted file mode 100644
index c73cf72ae0..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml
+++ /dev/null
@@ -1,276 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 P1 Symbol Insertion
-###################################################
- -->
-<block>
- <name>P1 Symbol Insertion</name>
- <key>dtv_dvbt2_p1insertion_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_p1insertion_cc($carriermode.val, #slurp
-#if str($version) == 'VERSION_111'
-$fftsize1.val, #slurp
-#else
-#if str($preamble2) == 'PREAMBLE_T2_SISO' or str($preamble2) == 'PREAMBLE_T2_MISO'
-$fftsize1.val, #slurp
-#else
-$fftsize2.val, #slurp
-#end if
-#end if
-$guardinterval.val, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$preamble1.val, #slurp
-#else
-$preamble2.val, #slurp
-#end if
-$showlevels.val, $vclip)</make>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize1</key>
- <type>enum</type>
- <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_base else $preamble2.hide_base</hide>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize2</key>
- <type>enum</type>
- <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_lite else $preamble2.hide_lite</hide>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_lite:all</opt>
- <opt>hide_base:</opt>
- </option>
- <option>
- <name>T2-Lite SISO</name>
- <key>PREAMBLE_T2_LITE_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt>
- <opt>hide_lite:</opt>
- <opt>hide_base:all</opt>
- </option>
- <option>
- <name>T2-Lite MISO</name>
- <key>PREAMBLE_T2_LITE_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt>
- <opt>hide_lite:</opt>
- <opt>hide_base:all</opt>
- </option>
- </param>
- <param>
- <name>Show Peak IQ Levels</name>
- <key>showlevels</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>SHOWLEVELS_OFF</key>
- <opt>val:dtv.SHOWLEVELS_OFF</opt>
- <opt>hide_vclip:all</opt>
- </option>
- <option>
- <name>On</name>
- <key>SHOWLEVELS_ON</key>
- <opt>val:dtv.SHOWLEVELS_ON</opt>
- <opt>hide_vclip:</opt>
- </option>
- </param>
- <param>
- <name>Vclip</name>
- <key>vclip</key>
- <value>3.3</value>
- <type>float</type>
- <hide>$showlevels.hide_vclip</hide>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml
new file mode 100644
index 0000000000..0e1d6c285d
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml
@@ -0,0 +1,105 @@
+id: dtv_dvbt2_paprtr_cc
+label: Tone Reservation PAPR
+
+parameters:
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2
+ GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+ vlength: ['1024', '2048', '4096', '8192', '8192', '16384', '16384', '32768',
+ '32768']
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: pilotpattern
+ label: Pilot Pattern
+ dtype: enum
+ options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7,
+ PILOT_PP8]
+ option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8]
+ option_attributes:
+ val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5,
+ dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8]
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: paprmode1
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ hide_vclip: [all, all, '', '']
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_111 }
+- id: paprmode2
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ hide_vclip: [all, all, '', '']
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_131 }
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+- id: vclip
+ label: Vclip
+ dtype: float
+ default: '3.3'
+ hide: ${ (paprmode1.hide_vclip if str(version) == 'VERSION_111' else paprmode2.hide_vclip)
+ }
+- id: iterations
+ label: Iterations
+ dtype: int
+ default: '10'
+ hide: ${ (paprmode1.hide_vclip if str(version) == 'VERSION_111' else paprmode2.hide_vclip)
+ }
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fftsize.vlength }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fftsize.vlength }
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_paprtr_cc(${carriermode.val}, ${fftsize.val}, ${pilotpattern.val},\
+ \ ${guardinterval.val}, ${numdatasyms}, \n% if str(version) == 'VERSION_111':\n\
+ ${paprmode1.val}, \n% else:\n${paprmode2.val}, \n% endif\n${version.val},\
+ \ ${vclip}, ${iterations}, ${fftsize.vlength})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml
deleted file mode 100644
index 4fa37ef5b8..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml
+++ /dev/null
@@ -1,286 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Tone Reservation PAPR
-###################################################
- -->
-<block>
- <name>Tone Reservation PAPR</name>
- <key>dtv_dvbt2_paprtr_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_paprtr_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$paprmode1.val, #slurp
-#else
-$paprmode2.val, #slurp
-#end if
-$version.val, $vclip, $iterations, $fftsize.vlength)</make>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize</key>
- <type>enum</type>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- <opt>vlength:1024</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- <opt>vlength:2048</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- <opt>vlength:4096</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- <opt>vlength:8192</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- <opt>vlength:8192</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- <opt>vlength:16384</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- <opt>vlength:16384</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- <opt>vlength:32768</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- <opt>vlength:32768</opt>
- </option>
- </param>
- <param>
- <name>Pilot Pattern</name>
- <key>pilotpattern</key>
- <type>enum</type>
- <option>
- <name>PP1</name>
- <key>PILOT_PP1</key>
- <opt>val:dtv.PILOT_PP1</opt>
- </option>
- <option>
- <name>PP2</name>
- <key>PILOT_PP2</key>
- <opt>val:dtv.PILOT_PP2</opt>
- </option>
- <option>
- <name>PP3</name>
- <key>PILOT_PP3</key>
- <opt>val:dtv.PILOT_PP3</opt>
- </option>
- <option>
- <name>PP4</name>
- <key>PILOT_PP4</key>
- <opt>val:dtv.PILOT_PP4</opt>
- </option>
- <option>
- <name>PP5</name>
- <key>PILOT_PP5</key>
- <opt>val:dtv.PILOT_PP5</opt>
- </option>
- <option>
- <name>PP6</name>
- <key>PILOT_PP6</key>
- <opt>val:dtv.PILOT_PP6</opt>
- </option>
- <option>
- <name>PP7</name>
- <key>PILOT_PP7</key>
- <opt>val:dtv.PILOT_PP7</opt>
- </option>
- <option>
- <name>PP8</name>
- <key>PILOT_PP8</key>
- <opt>val:dtv.PILOT_PP8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>Off</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- <opt>hide_vclip:all</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- <opt>hide_vclip:all</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- <opt>hide_vclip:</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- <opt>hide_vclip:</opt>
- </option>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>P2 Only</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- <opt>hide_vclip:all</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- <opt>hide_vclip:all</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- <opt>hide_vclip:</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- <opt>hide_vclip:</opt>
- </option>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <param>
- <name>Vclip</name>
- <key>vclip</key>
- <value>3.3</value>
- <type>float</type>
- <hide>#if str($version) == 'VERSION_111' then $paprmode1.hide_vclip else $paprmode2.hide_vclip</hide>
- </param>
- <param>
- <name>Iterations</name>
- <key>iterations</key>
- <value>10</value>
- <type>int</type>
- <hide>#if str($version) == 'VERSION_111' then $paprmode1.hide_vclip else $paprmode2.hide_vclip</hide>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$fftsize.vlength</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$fftsize.vlength</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml
new file mode 100644
index 0000000000..083b86056c
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml
@@ -0,0 +1,137 @@
+id: dtv_dvbt2_pilotgenerator_cc
+label: Pilot Generator and IFFT
+
+parameters:
+- id: carriermode
+ label: Extended Carrier Mode
+ dtype: enum
+ options: [CARRIERS_NORMAL, CARRIERS_EXTENDED]
+ option_labels: [Normal, Extended]
+ option_attributes:
+ val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED]
+- id: fftsize
+ label: FFT Size
+ dtype: enum
+ options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K,
+ FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI]
+ option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2
+ GI]
+ option_attributes:
+ val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI,
+ dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI]
+ vlength: ['1024', '2048', '4096', '8192', '8192', '16384', '16384', '32768',
+ '32768']
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: pilotpattern
+ label: Pilot Pattern
+ dtype: enum
+ options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7,
+ PILOT_PP8]
+ option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8]
+ option_attributes:
+ val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5,
+ dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8]
+- id: guardinterval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256]
+ option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128,
+ dtv.GI_19_256]
+- id: numdatasyms
+ label: Number of Data Symbols
+ dtype: int
+ default: '100'
+- id: paprmode1
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_111 }
+- id: paprmode2
+ label: PAPR Mode
+ dtype: enum
+ options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH]
+ option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both
+ ACE and TR]
+ option_attributes:
+ val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH]
+ hide: ${ version.hide_131 }
+- id: version
+ label: Specification Version
+ dtype: enum
+ options: [VERSION_111, VERSION_131]
+ option_labels: [1.1.1, 1.3.1]
+ option_attributes:
+ hide_111: ['', all]
+ hide_131: [all, '']
+ val: [dtv.VERSION_111, dtv.VERSION_131]
+- id: preamble1
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO]
+ option_labels: [T2 SISO, T2 MISO]
+ option_attributes:
+ hide_miso: [all, '']
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO]
+ hide: ${ version.hide_111 }
+- id: preamble2
+ label: Preamble
+ dtype: enum
+ options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO]
+ option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO]
+ option_attributes:
+ hide_miso: [all, '', all, '']
+ val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO,
+ dtv.PREAMBLE_T2_LITE_MISO]
+ hide: ${ version.hide_131 }
+- id: misogroup
+ label: MISO Group
+ dtype: enum
+ options: [MISO_TX1, MISO_TX2]
+ option_labels: [TX1, TX2]
+ option_attributes:
+ val: [dtv.MISO_TX1, dtv.MISO_TX2]
+ hide: ${ (preamble1.hide_miso if str(version) == 'VERSION_111' else preamble2.hide_miso)
+ }
+- id: equalization
+ label: Sin(x)/x Equalization
+ dtype: enum
+ options: [EQUALIZATION_OFF, EQUALIZATION_ON]
+ option_labels: ['Off', 'On']
+ option_attributes:
+ hide_bandwidth: [all, '']
+ val: [dtv.EQUALIZATION_OFF, dtv.EQUALIZATION_ON]
+- id: bandwidth
+ label: Bandwidth
+ dtype: enum
+ options: [BANDWIDTH_1_7_MHZ, BANDWIDTH_5_0_MHZ, BANDWIDTH_6_0_MHZ, BANDWIDTH_7_0_MHZ,
+ BANDWIDTH_8_0_MHZ, BANDWIDTH_10_0_MHZ]
+ option_labels: [1.7 MHz, 5 MHz, 6 MHz, 7 MHz, 8 MHz, 10 MHz]
+ option_attributes:
+ val: [dtv.BANDWIDTH_1_7_MHZ, dtv.BANDWIDTH_5_0_MHZ, dtv.BANDWIDTH_6_0_MHZ,
+ dtv.BANDWIDTH_7_0_MHZ, dtv.BANDWIDTH_8_0_MHZ, dtv.BANDWIDTH_10_0_MHZ]
+ hide: ${ equalization.hide_bandwidth }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ fftsize.vlength }
+
+templates:
+ imports: from gnuradio import dtv
+ make: "dtv.dvbt2_pilotgenerator_cc(${carriermode.val}, ${fftsize.val}, ${pilotpattern.val},\
+ \ ${guardinterval.val}, ${numdatasyms}, \n% if str(version) == 'VERSION_111':\n\
+ ${paprmode1.val}, \n% else:\n${paprmode2.val}, \n% endif\n${version.val},\
+ \ \n% if str(version) == 'VERSION_111':\n${preamble1.val}, \n% else:\n${preamble2.val},\
+ \ \n% endif\n${misogroup.val}, ${equalization.val}, ${bandwidth.val}, ${fftsize.vlength})"
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml
deleted file mode 100644
index fdcac6489d..0000000000
--- a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml
+++ /dev/null
@@ -1,386 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T2 Pilot Generator
-###################################################
- -->
-<block>
- <name>Pilot Generator and IFFT</name>
- <key>dtv_dvbt2_pilotgenerator_cc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt2_pilotgenerator_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp
-#if str($version) == 'VERSION_111'
-$paprmode1.val, #slurp
-#else
-$paprmode2.val, #slurp
-#end if
-$version.val, #slurp
-#if str($version) == 'VERSION_111'
-$preamble1.val, #slurp
-#else
-$preamble2.val, #slurp
-#end if
-$misogroup.val, $equalization.val, $bandwidth.val, $fftsize.vlength)</make>
- <param>
- <name>Extended Carrier Mode</name>
- <key>carriermode</key>
- <type>enum</type>
- <option>
- <name>Normal</name>
- <key>CARRIERS_NORMAL</key>
- <opt>val:dtv.CARRIERS_NORMAL</opt>
- </option>
- <option>
- <name>Extended</name>
- <key>CARRIERS_EXTENDED</key>
- <opt>val:dtv.CARRIERS_EXTENDED</opt>
- </option>
- </param>
- <param>
- <name>FFT Size</name>
- <key>fftsize</key>
- <type>enum</type>
- <option>
- <name>1K</name>
- <key>FFTSIZE_1K</key>
- <opt>val:dtv.FFTSIZE_1K</opt>
- <opt>vlength:1024</opt>
- </option>
- <option>
- <name>2K</name>
- <key>FFTSIZE_2K</key>
- <opt>val:dtv.FFTSIZE_2K</opt>
- <opt>vlength:2048</opt>
- </option>
- <option>
- <name>4K</name>
- <key>FFTSIZE_4K</key>
- <opt>val:dtv.FFTSIZE_4K</opt>
- <opt>vlength:4096</opt>
- </option>
- <option>
- <name>8K</name>
- <key>FFTSIZE_8K</key>
- <opt>val:dtv.FFTSIZE_8K</opt>
- <opt>vlength:8192</opt>
- </option>
- <option>
- <name>8K DVB-T2 GI</name>
- <key>FFTSIZE_8K_T2GI</key>
- <opt>val:dtv.FFTSIZE_8K_T2GI</opt>
- <opt>vlength:8192</opt>
- </option>
- <option>
- <name>16K</name>
- <key>FFTSIZE_16K</key>
- <opt>val:dtv.FFTSIZE_16K</opt>
- <opt>vlength:16384</opt>
- </option>
- <option>
- <name>16K DVB-T2 GI</name>
- <key>FFTSIZE_16K_T2GI</key>
- <opt>val:dtv.FFTSIZE_16K_T2GI</opt>
- <opt>vlength:16384</opt>
- </option>
- <option>
- <name>32K</name>
- <key>FFTSIZE_32K</key>
- <opt>val:dtv.FFTSIZE_32K</opt>
- <opt>vlength:32768</opt>
- </option>
- <option>
- <name>32K DVB-T2 GI</name>
- <key>FFTSIZE_32K_T2GI</key>
- <opt>val:dtv.FFTSIZE_32K_T2GI</opt>
- <opt>vlength:32768</opt>
- </option>
- </param>
- <param>
- <name>Pilot Pattern</name>
- <key>pilotpattern</key>
- <type>enum</type>
- <option>
- <name>PP1</name>
- <key>PILOT_PP1</key>
- <opt>val:dtv.PILOT_PP1</opt>
- </option>
- <option>
- <name>PP2</name>
- <key>PILOT_PP2</key>
- <opt>val:dtv.PILOT_PP2</opt>
- </option>
- <option>
- <name>PP3</name>
- <key>PILOT_PP3</key>
- <opt>val:dtv.PILOT_PP3</opt>
- </option>
- <option>
- <name>PP4</name>
- <key>PILOT_PP4</key>
- <opt>val:dtv.PILOT_PP4</opt>
- </option>
- <option>
- <name>PP5</name>
- <key>PILOT_PP5</key>
- <opt>val:dtv.PILOT_PP5</opt>
- </option>
- <option>
- <name>PP6</name>
- <key>PILOT_PP6</key>
- <opt>val:dtv.PILOT_PP6</opt>
- </option>
- <option>
- <name>PP7</name>
- <key>PILOT_PP7</key>
- <opt>val:dtv.PILOT_PP7</opt>
- </option>
- <option>
- <name>PP8</name>
- <key>PILOT_PP8</key>
- <opt>val:dtv.PILOT_PP8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guardinterval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- <option>
- <name>1/128</name>
- <key>GI_1_128</key>
- <opt>val:dtv.GI_1_128</opt>
- </option>
- <option>
- <name>19/128</name>
- <key>GI_19_128</key>
- <opt>val:dtv.GI_19_128</opt>
- </option>
- <option>
- <name>19/256</name>
- <key>GI_19_256</key>
- <opt>val:dtv.GI_19_256</opt>
- </option>
- </param>
- <param>
- <name>Number of Data Symbols</name>
- <key>numdatasyms</key>
- <value>100</value>
- <type>int</type>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>Off</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>PAPR Mode</name>
- <key>paprmode2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>P2 Only</name>
- <key>PAPR_OFF</key>
- <opt>val:dtv.PAPR_OFF</opt>
- </option>
- <option>
- <name>Active Constellation Extension</name>
- <key>PAPR_ACE</key>
- <opt>val:dtv.PAPR_ACE</opt>
- </option>
- <option>
- <name>Tone Reservation</name>
- <key>PAPR_TR</key>
- <opt>val:dtv.PAPR_TR</opt>
- </option>
- <option>
- <name>Both ACE and TR</name>
- <key>PAPR_BOTH</key>
- <opt>val:dtv.PAPR_BOTH</opt>
- </option>
- </param>
- <param>
- <name>Specification Version</name>
- <key>version</key>
- <type>enum</type>
- <option>
- <name>1.1.1</name>
- <key>VERSION_111</key>
- <opt>val:dtv.VERSION_111</opt>
- <opt>hide_111:</opt>
- <opt>hide_131:all</opt>
- </option>
- <option>
- <name>1.3.1</name>
- <key>VERSION_131</key>
- <opt>val:dtv.VERSION_131</opt>
- <opt>hide_111:all</opt>
- <opt>hide_131:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble1</key>
- <type>enum</type>
- <hide>$version.hide_111</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_miso:all</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_miso:</opt>
- </option>
- </param>
- <param>
- <name>Preamble</name>
- <key>preamble2</key>
- <type>enum</type>
- <hide>$version.hide_131</hide>
- <option>
- <name>T2 SISO</name>
- <key>PREAMBLE_T2_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_SISO</opt>
- <opt>hide_miso:all</opt>
- </option>
- <option>
- <name>T2 MISO</name>
- <key>PREAMBLE_T2_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_MISO</opt>
- <opt>hide_miso:</opt>
- </option>
- <option>
- <name>T2-Lite SISO</name>
- <key>PREAMBLE_T2_LITE_SISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt>
- <opt>hide_miso:all</opt>
- </option>
- <option>
- <name>T2-Lite MISO</name>
- <key>PREAMBLE_T2_LITE_MISO</key>
- <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt>
- <opt>hide_miso:</opt>
- </option>
- </param>
- <param>
- <name>MISO Group</name>
- <key>misogroup</key>
- <type>enum</type>
- <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_miso else $preamble2.hide_miso</hide>
- <option>
- <name>TX1</name>
- <key>MISO_TX1</key>
- <opt>val:dtv.MISO_TX1</opt>
- </option>
- <option>
- <name>TX2</name>
- <key>MISO_TX2</key>
- <opt>val:dtv.MISO_TX2</opt>
- </option>
- </param>
- <param>
- <name>Sin(x)/x Equalization</name>
- <key>equalization</key>
- <type>enum</type>
- <option>
- <name>Off</name>
- <key>EQUALIZATION_OFF</key>
- <opt>val:dtv.EQUALIZATION_OFF</opt>
- <opt>hide_bandwidth:all</opt>
- </option>
- <option>
- <name>On</name>
- <key>EQUALIZATION_ON</key>
- <opt>val:dtv.EQUALIZATION_ON</opt>
- <opt>hide_bandwidth:</opt>
- </option>
- </param>
- <param>
- <name>Bandwidth</name>
- <key>bandwidth</key>
- <type>enum</type>
- <hide>$equalization.hide_bandwidth</hide>
- <option>
- <name>1.7 MHz</name>
- <key>BANDWIDTH_1_7_MHZ</key>
- <opt>val:dtv.BANDWIDTH_1_7_MHZ</opt>
- </option>
- <option>
- <name>5 MHz</name>
- <key>BANDWIDTH_5_0_MHZ</key>
- <opt>val:dtv.BANDWIDTH_5_0_MHZ</opt>
- </option>
- <option>
- <name>6 MHz</name>
- <key>BANDWIDTH_6_0_MHZ</key>
- <opt>val:dtv.BANDWIDTH_6_0_MHZ</opt>
- </option>
- <option>
- <name>7 MHz</name>
- <key>BANDWIDTH_7_0_MHZ</key>
- <opt>val:dtv.BANDWIDTH_7_0_MHZ</opt>
- </option>
- <option>
- <name>8 MHz</name>
- <key>BANDWIDTH_8_0_MHZ</key>
- <opt>val:dtv.BANDWIDTH_8_0_MHZ</opt>
- </option>
- <option>
- <name>10 MHz</name>
- <key>BANDWIDTH_10_0_MHZ</key>
- <opt>val:dtv.BANDWIDTH_10_0_MHZ</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$fftsize.vlength</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml
new file mode 100644
index 0000000000..0431f30881
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml
@@ -0,0 +1,47 @@
+id: dtv_dvbt_bit_inner_deinterleaver
+label: Bit Inner Deinterleaver
+
+parameters:
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ num_streams: ['1', '2', '2', '2']
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+ hide: part
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+ multiplicity: ${ hierarchy.num_streams }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_bit_inner_deinterleaver(${transmission_mode.payload_length}, ${constellation.val},
+ ${hierarchy.val}, ${transmission_mode.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml
deleted file mode 100644
index ff338d2118..0000000000
--- a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Bit Inner Deinterleaver
-###################################################
- -->
-<block>
- <name>Bit Inner Deinterleaver</name>
- <key>dtv_dvbt_bit_inner_deinterleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_bit_inner_deinterleaver($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val)</make>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- <opt>num_streams:1</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- <opt>num_streams:2</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- <opt>num_streams:2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- <opt>num_streams:2</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- <nports>$hierarchy.num_streams</nports>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml
new file mode 100644
index 0000000000..1d9b40473f
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml
@@ -0,0 +1,47 @@
+id: dtv_dvbt_bit_inner_interleaver
+label: Bit Inner Interleaver
+
+parameters:
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ num_streams: ['1', '2', '2', '2']
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+ hide: part
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+ multiplicity: ${ hierarchy.num_streams }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_bit_inner_interleaver(${transmission_mode.payload_length}, ${constellation.val},
+ ${hierarchy.val}, ${transmission_mode.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml
deleted file mode 100644
index 31f1c2cfa5..0000000000
--- a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Bit Inner Interleaver
-###################################################
- -->
-<block>
- <name>Bit Inner Interleaver</name>
- <key>dtv_dvbt_bit_inner_interleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_bit_inner_interleaver($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val)</make>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- <opt>num_streams:1</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- <opt>num_streams:2</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- <opt>num_streams:2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- <opt>num_streams:2</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- <nports>$hierarchy.num_streams</nports>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml
new file mode 100644
index 0000000000..b4b5708bcc
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml
@@ -0,0 +1,39 @@
+id: dtv_dvbt_convolutional_deinterleaver
+label: Convolutional Deinterleaver
+
+parameters:
+- id: blocks
+ label: Blocks (12 Bytes)
+ dtype: int
+ default: '136'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: I
+ label: Number of Shift registers
+ dtype: int
+ default: '12'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: M
+ label: Depth of shift registers
+ dtype: int
+ default: '17'
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 1
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*I }
+
+asserts:
+- ${ blocks > 0 }
+- ${ I > 0 }
+- ${ M > 0 }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_convolutional_deinterleaver(${blocks}, ${I}, ${M})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml
deleted file mode 100644
index 315920bd42..0000000000
--- a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Convolutional Deinterleaver
-###################################################
- -->
-<block>
- <name>Convolutional Deinterleaver</name>
- <key>dtv_dvbt_convolutional_deinterleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_convolutional_deinterleaver($blocks, $I, $M)</make>
- <param>
- <name>Blocks (12 Bytes)</name>
- <key>blocks</key>
- <value>136</value>
- <type>int</type>
- </param>
- <param>
- <name>Number of Shift registers</name>
- <key>I</key>
- <value>12</value>
- <type>int</type>
- </param>
- <param>
- <name>Depth of shift registers</name>
- <key>M</key>
- <value>17</value>
- <type>int</type>
- </param>
- <check>$blocks &gt; 0</check>
- <check>$I &gt; 0</check>
- <check>$M &gt; 0</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>1</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$blocks*$I</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml
new file mode 100644
index 0000000000..e47f1d09e9
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml
@@ -0,0 +1,39 @@
+id: dtv_dvbt_convolutional_interleaver
+label: Convolutional Interleaver
+
+parameters:
+- id: blocks
+ label: Blocks (12 Bytes)
+ dtype: int
+ default: '136'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: I
+ label: Number of Shift registers
+ dtype: int
+ default: '12'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: M
+ label: Depth of shift registers
+ dtype: int
+ default: '17'
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*I }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 1
+
+asserts:
+- ${ blocks > 0 }
+- ${ I > 0 }
+- ${ M > 0 }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_convolutional_interleaver(${blocks}, ${I}, ${M})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml
deleted file mode 100644
index 04518dd622..0000000000
--- a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Convolutional Interleaver
-###################################################
- -->
-<block>
- <name>Convolutional Interleaver</name>
- <key>dtv_dvbt_convolutional_interleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_convolutional_interleaver($blocks, $I, $M)</make>
- <param>
- <name>Blocks (12 Bytes)</name>
- <key>blocks</key>
- <value>136</value>
- <type>int</type>
- </param>
- <param>
- <name>Number of Shift registers</name>
- <key>I</key>
- <value>12</value>
- <type>int</type>
- </param>
- <param>
- <name>Depth of shift registers</name>
- <key>M</key>
- <value>17</value>
- <type>int</type>
- </param>
- <check>$blocks &gt; 0</check>
- <check>$I &gt; 0</check>
- <check>$M &gt; 0</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$blocks*$I</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>1</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_demap.block.yml b/gr-dtv/grc/dtv_dvbt_demap.block.yml
new file mode 100644
index 0000000000..857bcf3463
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_demap.block.yml
@@ -0,0 +1,48 @@
+id: dtv_dvbt_demap
+label: DVB-T Demap
+
+parameters:
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: gain
+ label: Gain
+ dtype: complex
+ default: '1'
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.payload_length }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_demap(${transmission_mode.payload_length}, ${constellation.val},
+ ${hierarchy.val}, ${transmission_mode.val}, ${gain})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_demap.xml b/gr-dtv/grc/dtv_dvbt_demap.xml
deleted file mode 100644
index 2268ed7cf5..0000000000
--- a/gr-dtv/grc/dtv_dvbt_demap.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Demap
-###################################################
- -->
-<block>
- <name>DVB-T Demap</name>
- <key>dtv_dvbt_demap</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_demap($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val, $gain)</make>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <param>
- <name>Gain</name>
- <key>gain</key>
- <value>1</value>
- <type>complex</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml
new file mode 100644
index 0000000000..a700f54eb6
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml
@@ -0,0 +1,86 @@
+id: dtv_dvbt_demod_reference_signals
+label: Demod Reference Signals
+
+parameters:
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short,
+ gr.sizeof_char]
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: code_rate_hp
+ label: Code rate HP
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+- id: code_rate_lp
+ label: Code rate LP
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+- id: guard_interval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4]
+ option_labels: [1/32, 1/16, 1/8, 1/4]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4]
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ fft_length: ['2048', '8192']
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: include_cell_id
+ label: Include Cell ID
+ dtype: enum
+ options: [call_id_yes, cell_id_no]
+ option_labels: ['Yes', 'No']
+ option_attributes:
+ val: ['1', '0']
+- id: cell_id
+ label: Cell Id
+ dtype: int
+ default: '0'
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.fft_length }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.payload_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_demod_reference_signals(${type.size}, ${transmission_mode.fft_length},
+ ${transmission_mode.payload_length}, ${constellation.val}, ${hierarchy.val},
+ ${code_rate_hp.val}, ${code_rate_lp.val}, ${guard_interval.val}, ${transmission_mode.val},
+ ${include_cell_id.val}, ${cell_id})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml
deleted file mode 100644
index f92469b7e6..0000000000
--- a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Demod Reference Signals
-###################################################
- -->
-<block>
- <name>Demod Reference Signals</name>
- <key>dtv_dvbt_demod_reference_signals</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_demod_reference_signals($type.size, $transmission_mode.fft_length, $transmission_mode.payload_length, $constellation.val, $hierarchy.val, $code_rate_hp.val, $code_rate_lp.val, $guard_interval.val, $transmission_mode.val, $include_cell_id.val, $cell_id)</make>
- <param>
- <name>IO Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>size:gr.sizeof_gr_complex</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>size:gr.sizeof_float</opt>
- </option>
- <option>
- <name>Int</name>
- <key>int</key>
- <opt>size:gr.sizeof_int</opt>
- </option>
- <option>
- <name>Short</name>
- <key>short</key>
- <opt>size:gr.sizeof_short</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>size:gr.sizeof_char</opt>
- </option>
- </param>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Code rate HP</name>
- <key>code_rate_hp</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <param>
- <name>Code rate LP</name>
- <key>code_rate_lp</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guard_interval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>fft_length:2048</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>fft_length:8192</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <param>
- <name>Include Cell ID</name>
- <key>include_cell_id</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>call_id_yes</key>
- <opt>val:1</opt>
- </option>
- <option>
- <name>No</name>
- <key>cell_id_no</key>
- <opt>val:0</opt>
- </option>
- </param>
- <param>
- <name>Cell Id</name>
- <key>cell_id</key>
- <value>0</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$transmission_mode.fft_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml b/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml
new file mode 100644
index 0000000000..9ca3fee196
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml
@@ -0,0 +1,27 @@
+id: dtv_dvbt_energy_descramble
+label: Energy Descramble
+
+parameters:
+- id: nsize
+ label: Blocks(188 Bytes)
+ dtype: int
+ default: '8'
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 188*8
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: 1
+
+asserts:
+- ${ nsize > 0 }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_energy_descramble(${nsize})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_energy_descramble.xml b/gr-dtv/grc/dtv_dvbt_energy_descramble.xml
deleted file mode 100644
index 689f85424f..0000000000
--- a/gr-dtv/grc/dtv_dvbt_energy_descramble.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Energy Descramble
-###################################################
- -->
-<block>
- <name>Energy Descramble</name>
- <key>dtv_dvbt_energy_descramble</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_energy_descramble($nsize)</make>
- <param>
- <name>Blocks(188 Bytes)</name>
- <key>nsize</key>
- <value>8</value>
- <type>int</type>
- </param>
- <check>$nsize &gt; 0</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>188*8</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>1</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml b/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml
new file mode 100644
index 0000000000..1b7628fb65
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml
@@ -0,0 +1,28 @@
+id: dtv_dvbt_energy_dispersal
+label: Energy Dispersal
+
+parameters:
+- id: nsize
+ label: Blocks(1504 Bytes)
+ dtype: int
+ default: '8'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: 1
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ 1504*nsize }
+
+asserts:
+- ${ nsize > 0 }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_energy_dispersal(${nsize})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml b/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml
deleted file mode 100644
index 50746c8e4d..0000000000
--- a/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Energy Dispersal
-###################################################
- -->
-<block>
- <name>Energy Dispersal</name>
- <key>dtv_dvbt_energy_dispersal</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_energy_dispersal($nsize)</make>
- <param>
- <name>Blocks(1504 Bytes)</name>
- <key>nsize</key>
- <value>8</value>
- <type>int</type>
- </param>
- <check>$nsize &gt; 0</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>1</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>1504*$nsize</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml b/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml
new file mode 100644
index 0000000000..ca9c2eda4a
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml
@@ -0,0 +1,57 @@
+id: dtv_dvbt_inner_coder
+label: Inner Coder
+
+parameters:
+- id: ninput
+ label: Input length
+ dtype: int
+ default: '1'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: noutput
+ label: Output length
+ dtype: int
+ default: '1512'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: code_rate
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ ninput }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ noutput }
+
+asserts:
+- ${ ninput > 0 }
+- ${ noutput > 0 }
+- ${ noutput >= ninput }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_inner_coder(${ninput}, ${noutput}, ${constellation.val}, ${hierarchy.val},
+ ${code_rate.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_inner_coder.xml b/gr-dtv/grc/dtv_dvbt_inner_coder.xml
deleted file mode 100644
index 4751065dd1..0000000000
--- a/gr-dtv/grc/dtv_dvbt_inner_coder.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Inner Coder
-###################################################
- -->
-<block>
- <name>Inner Coder</name>
- <key>dtv_dvbt_inner_coder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_inner_coder($ninput, $noutput, $constellation.val, $hierarchy.val, $code_rate.val)</make>
- <param>
- <name>Input length</name>
- <key>ninput</key>
- <value>1</value>
- <type>int</type>
- </param>
- <param>
- <name>Output length</name>
- <key>noutput</key>
- <value>1512</value>
- <type>int</type>
- </param>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>code_rate</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <check>$ninput &gt; 0</check>
- <check>$noutput &gt; 0</check>
- <check>$noutput &gt;= $ninput</check>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$ninput</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$noutput</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_map.block.yml b/gr-dtv/grc/dtv_dvbt_map.block.yml
new file mode 100644
index 0000000000..76ffa0400b
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_map.block.yml
@@ -0,0 +1,48 @@
+id: dtv_dvbt_map
+label: DVB-T Map
+
+parameters:
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: gain
+ label: Gain
+ dtype: complex
+ default: '1'
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.payload_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_map(${transmission_mode.payload_length}, ${constellation.val},
+ ${hierarchy.val}, ${transmission_mode.val}, ${gain})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_map.xml b/gr-dtv/grc/dtv_dvbt_map.xml
deleted file mode 100644
index 705a508033..0000000000
--- a/gr-dtv/grc/dtv_dvbt_map.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Map
-###################################################
- -->
-<block>
- <name>DVB-T Map</name>
- <key>dtv_dvbt_map</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_map($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val, $gain)</make>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <param>
- <name>Gain</name>
- <key>gain</key>
- <value>1</value>
- <type>complex</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml
new file mode 100644
index 0000000000..fc00654488
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml
@@ -0,0 +1,45 @@
+id: dtv_dvbt_ofdm_sym_acquisition
+label: OFDM Symbol Acquisition
+
+parameters:
+- id: type
+ label: Output Type
+ dtype: enum
+ default: float
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ fcn: [c, f, i, s, b]
+ hide: part
+- id: fft_length
+ label: FFT Length
+ dtype: int
+ default: '2048'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: occupied_tones
+ label: Occupied Tones
+ dtype: int
+ default: '1705'
+- id: cp_length
+ label: Cyclic Prefix Length
+ dtype: int
+ default: '64'
+- id: snr
+ label: SNR
+ dtype: real
+ default: '10'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+ vlen: ${ fft_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_ofdm_sym_acquisition(1, ${fft_length}, ${occupied_tones}, ${cp_length},
+ ${snr})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml
deleted file mode 100644
index a75dcc02c3..0000000000
--- a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## OFDM Symbol Acquisition
-###################################################
- -->
-<block>
- <name>OFDM Symbol Acquisition</name>
- <key>dtv_dvbt_ofdm_sym_acquisition</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_ofdm_sym_acquisition(1, $fft_length, $occupied_tones, $cp_length, $snr)</make>
- <param>
- <name>Output Type</name>
- <key>type</key>
- <value>float</value>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>fcn:c</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>fcn:f</opt>
- </option>
- <option>
- <name>Int</name>
- <key>int</key>
- <opt>fcn:i</opt>
- </option>
- <option>
- <name>Short</name>
- <key>short</key>
- <opt>fcn:s</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>fcn:b</opt>
- </option>
- </param>
- <param>
- <name>FFT Length</name>
- <key>fft_length</key>
- <value>2048</value>
- <type>int</type>
- </param>
- <param>
- <name>Occupied Tones</name>
- <key>occupied_tones</key>
- <value>1705</value>
- <type>int</type>
- </param>
- <param>
- <name>Cyclic Prefix Length</name>
- <key>cp_length</key>
- <value>64</value>
- <type>int</type>
- </param>
- <param>
- <name>SNR</name>
- <key>snr</key>
- <value>10</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type</type>
- <vlen>$fft_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml
new file mode 100644
index 0000000000..e037c42e08
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml
@@ -0,0 +1,57 @@
+id: dtv_dvbt_reed_solomon_dec
+label: Reed-Solomon Decoder
+
+parameters:
+- id: p
+ label: p
+ dtype: int
+ default: '2'
+- id: m
+ label: m
+ dtype: int
+ default: '8'
+- id: gfpoly
+ label: GF polynomial
+ dtype: raw
+ default: '0x11d'
+- id: n
+ label: N
+ dtype: int
+ default: '255'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: k
+ label: K
+ dtype: int
+ default: '239'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: t
+ label: t
+ dtype: int
+ default: '8'
+- id: s
+ label: Shortening size
+ dtype: int
+ default: '51'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: blocks
+ label: Blocks
+ dtype: int
+ default: '8'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*(n-s) }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*(k-s) }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_reed_solomon_dec(${p}, ${m}, ${gfpoly}, ${n}, ${k}, ${t}, ${s},
+ ${blocks})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml
deleted file mode 100644
index 798a6d40f8..0000000000
--- a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Reed Solomon Decoder
-###################################################
- -->
-<block>
- <name>Reed-Solomon Decoder</name>
- <key>dtv_dvbt_reed_solomon_dec</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_reed_solomon_dec($p, $m, $gfpoly, $n, $k, $t, $s, $blocks)</make>
- <param>
- <name>p</name>
- <key>p</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>m</name>
- <key>m</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>GF polynomial</name>
- <key>gfpoly</key>
- <value>0x11d</value>
- <type>raw</type>
- </param>
- <param>
- <name>N</name>
- <key>n</key>
- <value>255</value>
- <type>int</type>
- </param>
- <param>
- <name>K</name>
- <key>k</key>
- <value>239</value>
- <type>int</type>
- </param>
- <param>
- <name>t</name>
- <key>t</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>Shortening size</name>
- <key>s</key>
- <value>51</value>
- <type>int</type>
- </param>
- <param>
- <name>Blocks</name>
- <key>blocks</key>
- <value>8</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$blocks*($n-$s)</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$blocks*($k-$s)</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml
new file mode 100644
index 0000000000..af463cad4e
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml
@@ -0,0 +1,57 @@
+id: dtv_dvbt_reed_solomon_enc
+label: Reed-Solomon Encoder
+
+parameters:
+- id: p
+ label: p
+ dtype: int
+ default: '2'
+- id: m
+ label: m
+ dtype: int
+ default: '8'
+- id: gfpoly
+ label: GF polynomial
+ dtype: raw
+ default: '0x11d'
+- id: n
+ label: N
+ dtype: int
+ default: '255'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: k
+ label: K
+ dtype: int
+ default: '239'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: t
+ label: t
+ dtype: int
+ default: '8'
+- id: s
+ label: Shortening size
+ dtype: int
+ default: '51'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: blocks
+ label: Blocks
+ dtype: int
+ default: '8'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*(k-s) }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ blocks*(n-s) }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_reed_solomon_enc(${p}, ${m}, ${gfpoly}, ${n}, ${k}, ${t}, ${s},
+ ${blocks})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml
deleted file mode 100644
index 3dd57a7df0..0000000000
--- a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Reed Solomon Encoder
-###################################################
- -->
-<block>
- <name>Reed-Solomon Encoder</name>
- <key>dtv_dvbt_reed_solomon_enc</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_reed_solomon_enc($p, $m, $gfpoly, $n, $k, $t, $s, $blocks)</make>
- <param>
- <name>p</name>
- <key>p</key>
- <value>2</value>
- <type>int</type>
- </param>
- <param>
- <name>m</name>
- <key>m</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>GF polynomial</name>
- <key>gfpoly</key>
- <value>0x11d</value>
- <type>raw</type>
- </param>
- <param>
- <name>N</name>
- <key>n</key>
- <value>255</value>
- <type>int</type>
- </param>
- <param>
- <name>K</name>
- <key>k</key>
- <value>239</value>
- <type>int</type>
- </param>
- <param>
- <name>t</name>
- <key>t</key>
- <value>8</value>
- <type>int</type>
- </param>
- <param>
- <name>Shortening size</name>
- <key>s</key>
- <value>51</value>
- <type>int</type>
- </param>
- <param>
- <name>Blocks</name>
- <key>blocks</key>
- <value>8</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$blocks*($k-$s)</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$blocks*($n-$s)</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml b/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml
new file mode 100644
index 0000000000..d693b5ae10
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml
@@ -0,0 +1,86 @@
+id: dtv_dvbt_reference_signals
+label: Reference Signals
+
+parameters:
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short,
+ gr.sizeof_char]
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: code_rate_hp
+ label: Code rate HP
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+- id: code_rate_lp
+ label: Code rate LP
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+- id: guard_interval
+ label: Guard Interval
+ dtype: enum
+ options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4]
+ option_labels: [1/32, 1/16, 1/8, 1/4]
+ option_attributes:
+ val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4]
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ fft_length: ['2048', '8192']
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: include_cell_id
+ label: Include Cell ID
+ dtype: enum
+ options: [call_id_yes, cell_id_no]
+ option_labels: ['Yes', 'No']
+ option_attributes:
+ val: ['1', '0']
+- id: cell_id
+ label: Cell Id
+ dtype: int
+ default: '0'
+
+inputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.payload_length }
+
+outputs:
+- domain: stream
+ dtype: complex
+ vlen: ${ transmission_mode.fft_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_reference_signals(${type.size}, ${transmission_mode.payload_length},
+ ${transmission_mode.fft_length}, ${constellation.val}, ${hierarchy.val}, ${code_rate_hp.val},
+ ${code_rate_lp.val}, ${guard_interval.val}, ${transmission_mode.val}, ${include_cell_id.val},
+ ${cell_id})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_reference_signals.xml b/gr-dtv/grc/dtv_dvbt_reference_signals.xml
deleted file mode 100644
index 3a4282cc50..0000000000
--- a/gr-dtv/grc/dtv_dvbt_reference_signals.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## Reference Signals
-###################################################
- -->
-<block>
- <name>Reference Signals</name>
- <key>dtv_dvbt_reference_signals</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_reference_signals($type.size, $transmission_mode.payload_length, $transmission_mode.fft_length, $constellation.val, $hierarchy.val, $code_rate_hp.val, $code_rate_lp.val, $guard_interval.val, $transmission_mode.val, $include_cell_id.val, $cell_id)</make>
- <param>
- <name>IO Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>complex</key>
- <opt>size:gr.sizeof_gr_complex</opt>
- </option>
- <option>
- <name>Float</name>
- <key>float</key>
- <opt>size:gr.sizeof_float</opt>
- </option>
- <option>
- <name>Int</name>
- <key>int</key>
- <opt>size:gr.sizeof_int</opt>
- </option>
- <option>
- <name>Short</name>
- <key>short</key>
- <opt>size:gr.sizeof_short</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>byte</key>
- <opt>size:gr.sizeof_char</opt>
- </option>
- </param>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Code rate HP</name>
- <key>code_rate_hp</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <param>
- <name>Code rate LP</name>
- <key>code_rate_lp</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <param>
- <name>Guard Interval</name>
- <key>guard_interval</key>
- <type>enum</type>
- <option>
- <name>1/32</name>
- <key>GI_1_32</key>
- <opt>val:dtv.GI_1_32</opt>
- </option>
- <option>
- <name>1/16</name>
- <key>GI_1_16</key>
- <opt>val:dtv.GI_1_16</opt>
- </option>
- <option>
- <name>1/8</name>
- <key>GI_1_8</key>
- <opt>val:dtv.GI_1_8</opt>
- </option>
- <option>
- <name>1/4</name>
- <key>GI_1_4</key>
- <opt>val:dtv.GI_1_4</opt>
- </option>
- </param>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>fft_length:2048</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>fft_length:8192</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <param>
- <name>Include Cell ID</name>
- <key>include_cell_id</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>call_id_yes</key>
- <opt>val:1</opt>
- </option>
- <option>
- <name>No</name>
- <key>cell_id_no</key>
- <opt>val:0</opt>
- </option>
- </param>
- <param>
- <name>Cell Id</name>
- <key>cell_id</key>
- <value>0</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <vlen>$transmission_mode.fft_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml
new file mode 100644
index 0000000000..d516f0ec7a
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml
@@ -0,0 +1,37 @@
+id: dtv_dvbt_symbol_inner_interleaver
+label: Symbol Inner Interleaver
+
+parameters:
+- id: transmission_mode
+ label: Transmission Mode
+ dtype: enum
+ options: [T2k, T8k]
+ option_labels: [2K, 8K]
+ option_attributes:
+ fft_length: ['2048', '8192']
+ payload_length: ['1512', '6048']
+ val: [dtv.T2k, dtv.T8k]
+ hide: ${ 'part' if vlen == 1 else 'none' }
+- id: direction
+ label: Direction
+ dtype: enum
+ options: [Interleave, Deinterleave]
+ option_attributes:
+ val: ['1', '0']
+
+inputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+outputs:
+- domain: stream
+ dtype: byte
+ vlen: ${ transmission_mode.payload_length }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_symbol_inner_interleaver(${transmission_mode.payload_length}, ${transmission_mode.val},
+ ${direction.val})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml
deleted file mode 100644
index f440769a46..0000000000
--- a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Symbol Inner Interleaver
-###################################################
- -->
-<block>
- <name>Symbol Inner Interleaver</name>
- <key>dtv_dvbt_symbol_inner_interleaver</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_symbol_inner_interleaver($transmission_mode.payload_length, $transmission_mode.val, $direction.val)</make>
- <param>
- <name>Transmission Mode</name>
- <key>transmission_mode</key>
- <type>enum</type>
- <option>
- <name>2K</name>
- <key>T2k</key>
- <opt>val:dtv.T2k</opt>
- <opt>fft_length:2048</opt>
- <opt>payload_length:1512</opt>
- </option>
- <option>
- <name>8K</name>
- <key>T8k</key>
- <opt>val:dtv.T8k</opt>
- <opt>fft_length:8192</opt>
- <opt>payload_length:6048</opt>
- </option>
- </param>
- <param>
- <name>Direction</name>
- <key>direction</key>
- <type>enum</type>
- <option>
- <name>Interleave</name>
- <key>Interleave</key>
- <opt>val:1</opt>
- </option>
- <option>
- <name>Deinterleave</name>
- <key>Deinterleave</key>
- <opt>val:0</opt>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>byte</type>
- <vlen>$transmission_mode.payload_length</vlen>
- </source>
-</block>
diff --git a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml
new file mode 100644
index 0000000000..367b581014
--- /dev/null
+++ b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml
@@ -0,0 +1,51 @@
+id: dtv_dvbt_viterbi_decoder
+label: Viterbi Decoder
+
+parameters:
+- id: constellation
+ label: Constellation Type
+ dtype: enum
+ options: [qpsk, 16qam, 64qam]
+ option_labels: [QPSK, 16QAM, 64QAM]
+ option_attributes:
+ val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM]
+- id: hierarchy
+ label: Hierarchy Type
+ dtype: enum
+ options: [nh, alpha1, alpha2, alpha4]
+ option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4]
+ option_attributes:
+ val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4]
+- id: code_rate
+ label: Code rate
+ dtype: enum
+ options: [C1_2, C2_3, C3_4, C5_6, C7_8]
+ option_labels: [1/2, 2/3, 3/4, 5/6, 7/8]
+ option_attributes:
+ val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8]
+- id: type
+ label: Type
+ dtype: enum
+ options: [i, s, b]
+ option_labels: [Int, Short, Byte]
+ option_attributes:
+ io: [int, short, byte]
+ hide: part
+- id: block_size
+ label: Block Size
+ dtype: int
+
+inputs:
+- domain: stream
+ dtype: byte
+
+outputs:
+- domain: stream
+ dtype: ${ type.io }
+
+templates:
+ imports: from gnuradio import dtv
+ make: dtv.dvbt_viterbi_decoder(${constellation.val}, ${hierarchy.val}, ${code_rate.val},
+ ${block_size})
+
+file_format: 1
diff --git a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml
deleted file mode 100644
index 1dde80c281..0000000000
--- a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## DVB-T Viterbi Decoder
-###################################################
- -->
-<block>
- <name>Viterbi Decoder</name>
- <key>dtv_dvbt_viterbi_decoder</key>
- <import>from gnuradio import dtv</import>
- <make>dtv.dvbt_viterbi_decoder($constellation.val, $hierarchy.val, $code_rate.val, $block_size)</make>
- <param>
- <name>Constellation Type</name>
- <key>constellation</key>
- <type>enum</type>
- <option>
- <name>QPSK</name>
- <key>qpsk</key>
- <opt>val:dtv.MOD_QPSK</opt>
- </option>
- <option>
- <name>16QAM</name>
- <key>16qam</key>
- <opt>val:dtv.MOD_16QAM</opt>
- </option>
- <option>
- <name>64QAM</name>
- <key>64qam</key>
- <opt>val:dtv.MOD_64QAM</opt>
- </option>
- </param>
- <param>
- <name>Hierarchy Type</name>
- <key>hierarchy</key>
- <type>enum</type>
- <option>
- <name>Non Hierarchical</name>
- <key>nh</key>
- <opt>val:dtv.NH</opt>
- </option>
- <option>
- <name>Alpha 1</name>
- <key>alpha1</key>
- <opt>val:dtv.ALPHA1</opt>
- </option>
- <option>
- <name>Alpha 2</name>
- <key>alpha2</key>
- <opt>val:dtv.ALPHA2</opt>
- </option>
- <option>
- <name>Alpha 4</name>
- <key>alpha4</key>
- <opt>val:dtv.ALPHA4</opt>
- </option>
- </param>
- <param>
- <name>Code rate</name>
- <key>code_rate</key>
- <type>enum</type>
- <option>
- <name>1/2</name>
- <key>C1_2</key>
- <opt>val:dtv.C1_2</opt>
- </option>
- <option>
- <name>2/3</name>
- <key>C2_3</key>
- <opt>val:dtv.C2_3</opt>
- </option>
- <option>
- <name>3/4</name>
- <key>C3_4</key>
- <opt>val:dtv.C3_4</opt>
- </option>
- <option>
- <name>5/6</name>
- <key>C5_6</key>
- <opt>val:dtv.C5_6</opt>
- </option>
- <option>
- <name>7/8</name>
- <key>C7_8</key>
- <opt>val:dtv.C7_8</opt>
- </option>
- </param>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Int</name>
- <key>i</key>
- <opt>io:int</opt>
- </option>
- <option>
- <name>Short</name>
- <key>s</key>
- <opt>io:short</opt>
- </option>
- <option>
- <name>Byte</name>
- <key>b</key>
- <opt>io:byte</opt>
- </option>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>byte</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.io</type>
- </source>
-</block>