summaryrefslogtreecommitdiff
path: root/gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc')
-rw-r--r--gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc737
1 files changed, 368 insertions, 369 deletions
diff --git a/gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc b/gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc
index 35e2973647..05f9ee4a4b 100644
--- a/gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc
+++ b/gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc
@@ -1,17 +1,17 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2015,2016 Free Software Foundation, Inc.
- *
+ *
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* This software 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 this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -26,348 +26,348 @@
#include "dvbs2_interleaver_bb_impl.h"
namespace gr {
- namespace dtv {
+namespace dtv {
- dvbs2_interleaver_bb::sptr
- dvbs2_interleaver_bb::make(dvb_framesize_t framesize, dvb_code_rate_t rate, dvb_constellation_t constellation)
- {
- return gnuradio::get_initial_sptr
- (new dvbs2_interleaver_bb_impl(framesize, rate, constellation));
- }
+dvbs2_interleaver_bb::sptr dvbs2_interleaver_bb::make(dvb_framesize_t framesize,
+ dvb_code_rate_t rate,
+ dvb_constellation_t constellation)
+{
+ return gnuradio::get_initial_sptr(
+ new dvbs2_interleaver_bb_impl(framesize, rate, constellation));
+}
- /*
- * The private constructor
- */
- dvbs2_interleaver_bb_impl::dvbs2_interleaver_bb_impl(dvb_framesize_t framesize, dvb_code_rate_t rate, dvb_constellation_t constellation)
- : gr::block("dvbs2_interleaver_bb",
- gr::io_signature::make(1, 1, sizeof(unsigned char)),
- gr::io_signature::make(1, 1, sizeof(unsigned char)))
- {
- int rows;
- signal_constellation = constellation;
- code_rate = rate;
- if (framesize == FECFRAME_NORMAL) {
+/*
+ * The private constructor
+ */
+dvbs2_interleaver_bb_impl::dvbs2_interleaver_bb_impl(dvb_framesize_t framesize,
+ dvb_code_rate_t rate,
+ dvb_constellation_t constellation)
+ : gr::block("dvbs2_interleaver_bb",
+ gr::io_signature::make(1, 1, sizeof(unsigned char)),
+ gr::io_signature::make(1, 1, sizeof(unsigned char)))
+{
+ int rows;
+ signal_constellation = constellation;
+ code_rate = rate;
+ if (framesize == FECFRAME_NORMAL) {
frame_size = FRAME_SIZE_NORMAL;
if (rate == C2_9_VLSNR) {
- frame_size = FRAME_SIZE_NORMAL - NORMAL_PUNCTURING;
+ frame_size = FRAME_SIZE_NORMAL - NORMAL_PUNCTURING;
}
- }
- else if (framesize == FECFRAME_SHORT) {
+ } else if (framesize == FECFRAME_SHORT) {
frame_size = FRAME_SIZE_SHORT;
if (rate == C1_5_VLSNR_SF2 || rate == C11_45_VLSNR_SF2) {
- frame_size = FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1;
+ frame_size = FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1;
}
if (rate == C1_5_VLSNR || rate == C4_15_VLSNR || rate == C1_3_VLSNR) {
- frame_size = FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2;
+ frame_size = FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2;
}
- }
- else {
+ } else {
frame_size = FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING;
- }
- switch (constellation) {
- case MOD_BPSK:
- mod = 1;
- rows = frame_size / mod;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_BPSK_SF2:
- mod = 1;
- rows = frame_size / mod;
- set_output_multiple(rows * 2);
- packed_items = rows * 2;
- break;
- case MOD_QPSK:
- mod = 2;
- rows = frame_size / mod;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_8PSK:
- mod = 3;
- rows = frame_size / mod;
- /* 210 */
- if (rate == C3_5) {
+ }
+ switch (constellation) {
+ case MOD_BPSK:
+ mod = 1;
+ rows = frame_size / mod;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_BPSK_SF2:
+ mod = 1;
+ rows = frame_size / mod;
+ set_output_multiple(rows * 2);
+ packed_items = rows * 2;
+ break;
+ case MOD_QPSK:
+ mod = 2;
+ rows = frame_size / mod;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_8PSK:
+ mod = 3;
+ rows = frame_size / mod;
+ /* 210 */
+ if (rate == C3_5) {
rowaddr0 = rows * 2;
rowaddr1 = rows;
rowaddr2 = 0;
- }
- /* 102 */
- else if (rate == C25_36 || rate == C13_18 || rate == C7_15 || rate == C8_15 || rate == C26_45) {
+ }
+ /* 102 */
+ else if (rate == C25_36 || rate == C13_18 || rate == C7_15 || rate == C8_15 ||
+ rate == C26_45) {
rowaddr0 = rows;
rowaddr1 = 0;
rowaddr2 = rows * 2;
- }
- /* 012 */
- else {
+ }
+ /* 012 */
+ else {
rowaddr0 = 0;
rowaddr1 = rows;
rowaddr2 = rows * 2;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_8APSK:
- mod = 3;
- rows = frame_size / mod;
- /* 012 */
- rowaddr0 = 0;
- rowaddr1 = rows;
- rowaddr2 = rows * 2;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_16APSK:
- mod = 4;
- rows = frame_size / mod;
- if (rate == C26_45) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_8APSK:
+ mod = 3;
+ rows = frame_size / mod;
+ /* 012 */
+ rowaddr0 = 0;
+ rowaddr1 = rows;
+ rowaddr2 = rows * 2;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_16APSK:
+ mod = 4;
+ rows = frame_size / mod;
+ if (rate == C26_45) {
/* 3201 */
if (frame_size == FRAME_SIZE_NORMAL) {
- rowaddr0 = rows * 3;
- rowaddr1 = rows * 2;
- rowaddr2 = 0;
- rowaddr3 = rows;
+ rowaddr0 = rows * 3;
+ rowaddr1 = rows * 2;
+ rowaddr2 = 0;
+ rowaddr3 = rows;
}
/* 2130 */
else {
- rowaddr0 = rows * 2;
- rowaddr1 = rows;
- rowaddr2 = rows * 3;
- rowaddr3 = 0;
+ rowaddr0 = rows * 2;
+ rowaddr1 = rows;
+ rowaddr2 = rows * 3;
+ rowaddr3 = 0;
}
- }
- else if (rate == C3_5) {
+ } else if (rate == C3_5) {
/* 3210 */
if (frame_size == FRAME_SIZE_NORMAL) {
- rowaddr0 = rows * 3;
- rowaddr1 = rows * 2;
- rowaddr2 = rows;
- rowaddr3 = 0;
+ rowaddr0 = rows * 3;
+ rowaddr1 = rows * 2;
+ rowaddr2 = rows;
+ rowaddr3 = 0;
}
/* 3201 */
else {
- rowaddr0 = rows * 3;
- rowaddr1 = rows * 2;
- rowaddr2 = 0;
- rowaddr3 = rows;
+ rowaddr0 = rows * 3;
+ rowaddr1 = rows * 2;
+ rowaddr2 = 0;
+ rowaddr3 = rows;
}
- }
- /* 3012 */
- else if (rate == C28_45) {
+ }
+ /* 3012 */
+ else if (rate == C28_45) {
rowaddr0 = rows * 3;
rowaddr1 = 0;
rowaddr2 = rows;
rowaddr3 = rows * 2;
- }
- /* 3021 */
- else if (rate == C23_36 || rate == C13_18) {
+ }
+ /* 3021 */
+ else if (rate == C23_36 || rate == C13_18) {
rowaddr0 = rows * 3;
rowaddr1 = 0;
rowaddr2 = rows * 2;
rowaddr3 = rows;
- }
- /* 2310 */
- else if (rate == C25_36) {
+ }
+ /* 2310 */
+ else if (rate == C25_36) {
rowaddr0 = rows * 2;
rowaddr1 = rows * 3;
rowaddr2 = rows;
rowaddr3 = 0;
- }
- /* 2103 */
- else if (rate == C7_15 || rate == C8_15) {
+ }
+ /* 2103 */
+ else if (rate == C7_15 || rate == C8_15) {
rowaddr0 = rows * 2;
rowaddr1 = rows;
rowaddr2 = 0;
rowaddr3 = rows * 3;
- }
- /* 3210 */
- else if (rate == C140_180) {
+ }
+ /* 3210 */
+ else if (rate == C140_180) {
rowaddr0 = rows * 3;
rowaddr1 = rows * 2;
rowaddr2 = rows;
rowaddr3 = 0;
- }
- /* 0321 */
- else if (rate == C154_180) {
+ }
+ /* 0321 */
+ else if (rate == C154_180) {
rowaddr0 = 0;
rowaddr1 = rows * 3;
rowaddr2 = rows * 2;
rowaddr3 = rows;
- }
- /* 0123 */
- else {
+ }
+ /* 0123 */
+ else {
rowaddr0 = 0;
rowaddr1 = rows;
rowaddr2 = rows * 2;
rowaddr3 = rows * 3;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_8_8APSK:
- mod = 4;
- rows = frame_size / mod;
- /* 3210 */
- if (rate == C90_180) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_8_8APSK:
+ mod = 4;
+ rows = frame_size / mod;
+ /* 3210 */
+ if (rate == C90_180) {
rowaddr0 = rows * 3;
rowaddr1 = rows * 2;
rowaddr2 = rows;
rowaddr3 = 0;
- }
- /* 2310 */
- else if (rate == C96_180) {
+ }
+ /* 2310 */
+ else if (rate == C96_180) {
rowaddr0 = rows * 2;
rowaddr1 = rows * 3;
rowaddr2 = rows;
rowaddr3 = 0;
- }
- /* 2301 */
- else if (rate == C100_180) {
+ }
+ /* 2301 */
+ else if (rate == C100_180) {
rowaddr0 = rows * 2;
rowaddr1 = rows * 3;
rowaddr2 = 0;
rowaddr3 = rows;
- }
- /* 0123 */
- else {
+ }
+ /* 0123 */
+ else {
rowaddr0 = 0;
rowaddr1 = rows;
rowaddr2 = rows * 2;
rowaddr3 = rows * 3;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_32APSK:
- mod = 5;
- rows = frame_size / mod;
- /* 01234 */
- rowaddr0 = 0;
- rowaddr1 = rows;
- rowaddr2 = rows * 2;
- rowaddr3 = rows * 3;
- rowaddr4 = rows * 4;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_4_12_16APSK:
- mod = 5;
- rows = frame_size / mod;
- /* 21430 */
- if (frame_size == FRAME_SIZE_NORMAL) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_32APSK:
+ mod = 5;
+ rows = frame_size / mod;
+ /* 01234 */
+ rowaddr0 = 0;
+ rowaddr1 = rows;
+ rowaddr2 = rows * 2;
+ rowaddr3 = rows * 3;
+ rowaddr4 = rows * 4;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_4_12_16APSK:
+ mod = 5;
+ rows = frame_size / mod;
+ /* 21430 */
+ if (frame_size == FRAME_SIZE_NORMAL) {
rowaddr0 = rows * 2;
rowaddr1 = rows;
rowaddr2 = rows * 4;
rowaddr3 = rows * 3;
rowaddr4 = 0;
- }
- else {
+ } else {
/* 41230 */
if (rate == C2_3) {
- rowaddr0 = rows * 4;
- rowaddr1 = rows;
- rowaddr2 = rows * 2;
- rowaddr3 = rows * 3;
- rowaddr4 = 0;
+ rowaddr0 = rows * 4;
+ rowaddr1 = rows;
+ rowaddr2 = rows * 2;
+ rowaddr3 = rows * 3;
+ rowaddr4 = 0;
}
/* 10423 */
else if (rate == C32_45) {
- rowaddr0 = rows;
- rowaddr1 = 0;
- rowaddr2 = rows * 4;
- rowaddr3 = rows * 2;
- rowaddr4 = rows * 3;
+ rowaddr0 = rows;
+ rowaddr1 = 0;
+ rowaddr2 = rows * 4;
+ rowaddr3 = rows * 2;
+ rowaddr4 = rows * 3;
}
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_4_8_4_16APSK:
- mod = 5;
- rows = frame_size / mod;
- /* 40213 */
- if (rate == C140_180) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_4_8_4_16APSK:
+ mod = 5;
+ rows = frame_size / mod;
+ /* 40213 */
+ if (rate == C140_180) {
rowaddr0 = rows * 4;
rowaddr1 = 0;
rowaddr2 = rows * 2;
rowaddr3 = rows;
rowaddr4 = rows * 3;
- }
- /* 40312 */
- else {
+ }
+ /* 40312 */
+ else {
rowaddr0 = rows * 4;
rowaddr1 = 0;
rowaddr2 = rows * 3;
rowaddr3 = rows;
rowaddr4 = rows * 2;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_64APSK:
- mod = 6;
- rows = frame_size / mod;
- /* 305214 */
- rowaddr0 = rows * 3;
- rowaddr1 = 0;
- rowaddr2 = rows * 5;
- rowaddr3 = rows * 2;
- rowaddr4 = rows;
- rowaddr5 = rows * 4;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_8_16_20_20APSK:
- mod = 6;
- rows = frame_size / mod;
- /* 201543 */
- if (rate == C7_9) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_64APSK:
+ mod = 6;
+ rows = frame_size / mod;
+ /* 305214 */
+ rowaddr0 = rows * 3;
+ rowaddr1 = 0;
+ rowaddr2 = rows * 5;
+ rowaddr3 = rows * 2;
+ rowaddr4 = rows;
+ rowaddr5 = rows * 4;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_8_16_20_20APSK:
+ mod = 6;
+ rows = frame_size / mod;
+ /* 201543 */
+ if (rate == C7_9) {
rowaddr0 = rows * 2;
rowaddr1 = 0;
rowaddr2 = rows;
rowaddr3 = rows * 5;
rowaddr4 = rows * 4;
rowaddr5 = rows * 3;
- }
- /* 124053 */
- else if (rate == C4_5) {
+ }
+ /* 124053 */
+ else if (rate == C4_5) {
rowaddr0 = rows;
rowaddr1 = rows * 2;
rowaddr2 = rows * 4;
rowaddr3 = 0;
rowaddr4 = rows * 5;
rowaddr5 = rows * 3;
- }
- /* 421053 */
- else if (rate == C5_6) {
+ }
+ /* 421053 */
+ else if (rate == C5_6) {
rowaddr0 = rows * 4;
rowaddr1 = rows * 2;
rowaddr2 = rows;
rowaddr3 = 0;
rowaddr4 = rows * 5;
rowaddr5 = rows * 3;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_4_12_20_28APSK:
- mod = 6;
- rows = frame_size / mod;
- /* 520143 */
- rowaddr0 = rows * 5;
- rowaddr1 = rows * 2;
- rowaddr2 = 0;
- rowaddr3 = rows;
- rowaddr4 = rows * 4;
- rowaddr5 = rows * 3;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- case MOD_128APSK:
- mod = 7;
- rows = (frame_size + 6) / mod;
- /* 4250316 */
- if (rate == C135_180) {
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_4_12_20_28APSK:
+ mod = 6;
+ rows = frame_size / mod;
+ /* 520143 */
+ rowaddr0 = rows * 5;
+ rowaddr1 = rows * 2;
+ rowaddr2 = 0;
+ rowaddr3 = rows;
+ rowaddr4 = rows * 4;
+ rowaddr5 = rows * 3;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ case MOD_128APSK:
+ mod = 7;
+ rows = (frame_size + 6) / mod;
+ /* 4250316 */
+ if (rate == C135_180) {
rowaddr0 = rows * 4;
rowaddr1 = rows * 2;
rowaddr2 = rows * 5;
@@ -375,9 +375,9 @@ namespace gr {
rowaddr4 = rows * 3;
rowaddr5 = rows;
rowaddr6 = rows * 6;
- }
- /* 4130256 */
- else if (rate == C140_180) {
+ }
+ /* 4130256 */
+ else if (rate == C140_180) {
rowaddr0 = rows * 4;
rowaddr1 = rows;
rowaddr2 = rows * 3;
@@ -385,15 +385,15 @@ namespace gr {
rowaddr4 = rows * 2;
rowaddr5 = rows * 5;
rowaddr6 = rows * 6;
- }
- set_output_multiple(rows + 12);
- packed_items = rows + 12;
- break;
- case MOD_256APSK:
- mod = 8;
- rows = frame_size / mod;
- /* 40372156 */
- if (rate == C116_180) {
+ }
+ set_output_multiple(rows + 12);
+ packed_items = rows + 12;
+ break;
+ case MOD_256APSK:
+ mod = 8;
+ rows = frame_size / mod;
+ /* 40372156 */
+ if (rate == C116_180) {
rowaddr0 = rows * 4;
rowaddr1 = 0;
rowaddr2 = rows * 3;
@@ -402,9 +402,9 @@ namespace gr {
rowaddr5 = rows;
rowaddr6 = rows * 5;
rowaddr7 = rows * 6;
- }
- /* 46320571 */
- else if (rate == C124_180) {
+ }
+ /* 46320571 */
+ else if (rate == C124_180) {
rowaddr0 = rows * 4;
rowaddr1 = rows * 6;
rowaddr2 = rows * 3;
@@ -413,9 +413,9 @@ namespace gr {
rowaddr5 = rows * 5;
rowaddr6 = rows * 7;
rowaddr7 = rows;
- }
- /* 75642301 */
- else if (rate == C128_180) {
+ }
+ /* 75642301 */
+ else if (rate == C128_180) {
rowaddr0 = rows * 7;
rowaddr1 = rows * 5;
rowaddr2 = rows * 6;
@@ -424,9 +424,9 @@ namespace gr {
rowaddr5 = rows * 3;
rowaddr6 = 0;
rowaddr7 = rows;
- }
- /* 50743612 */
- else if (rate == C135_180) {
+ }
+ /* 50743612 */
+ else if (rate == C135_180) {
rowaddr0 = rows * 5;
rowaddr1 = 0;
rowaddr2 = rows * 7;
@@ -435,9 +435,9 @@ namespace gr {
rowaddr5 = rows * 6;
rowaddr6 = rows;
rowaddr7 = rows * 2;
- }
- /* 01234567 */
- else {
+ }
+ /* 01234567 */
+ else {
rowaddr0 = 0;
rowaddr1 = rows;
rowaddr2 = rows * 2;
@@ -446,96 +446,91 @@ namespace gr {
rowaddr5 = rows * 5;
rowaddr6 = rows * 6;
rowaddr7 = rows * 7;
- }
- set_output_multiple(rows);
- packed_items = rows;
- break;
- default:
- mod = 2;
- rows = frame_size / mod;
- set_output_multiple(rows);
- packed_items = rows;
- break;
- }
+ }
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
+ default:
+ mod = 2;
+ rows = frame_size / mod;
+ set_output_multiple(rows);
+ packed_items = rows;
+ break;
}
+}
- /*
- * Our virtual destructor.
- */
- dvbs2_interleaver_bb_impl::~dvbs2_interleaver_bb_impl()
- {
- }
+/*
+ * Our virtual destructor.
+ */
+dvbs2_interleaver_bb_impl::~dvbs2_interleaver_bb_impl() {}
- void
- dvbs2_interleaver_bb_impl::forecast (int noutput_items, gr_vector_int &ninput_items_required)
- {
- if (signal_constellation == MOD_128APSK) {
+void dvbs2_interleaver_bb_impl::forecast(int noutput_items,
+ gr_vector_int& ninput_items_required)
+{
+ if (signal_constellation == MOD_128APSK) {
ninput_items_required[0] = ((noutput_items / 9270) * 9258) * mod;
- }
- else if (signal_constellation == MOD_BPSK_SF2) {
+ } else if (signal_constellation == MOD_BPSK_SF2) {
ninput_items_required[0] = (noutput_items * mod) / 2;
- }
- else {
+ } else {
ninput_items_required[0] = noutput_items * mod;
- }
}
+}
- int
- dvbs2_interleaver_bb_impl::general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const unsigned char *in = (const unsigned char *) input_items[0];
- unsigned char *out = (unsigned char *) output_items[0];
- int consumed = 0;
- int produced = 0;
- int rows;
+int dvbs2_interleaver_bb_impl::general_work(int noutput_items,
+ gr_vector_int& ninput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items)
+{
+ const unsigned char* in = (const unsigned char*)input_items[0];
+ unsigned char* out = (unsigned char*)output_items[0];
+ int consumed = 0;
+ int produced = 0;
+ int rows;
- switch (signal_constellation) {
- case MOD_BPSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ switch (signal_constellation) {
+ case MOD_BPSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size;
for (int j = 0; j < rows; j++) {
- out[produced++] = in[consumed++];
+ out[produced++] = in[consumed++];
}
- }
- break;
- case MOD_BPSK_SF2:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_BPSK_SF2:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size;
for (int j = 0; j < rows; j++) {
- out[produced++] = in[consumed];
- out[produced++] = in[consumed++];
+ out[produced++] = in[consumed];
+ out[produced++] = in[consumed++];
}
- }
- break;
- case MOD_QPSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_QPSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 2;
for (int j = 0; j < rows; j++) {
- out[produced] = in[consumed++] << 1;
- out[produced++] |= in[consumed++];
+ out[produced] = in[consumed++] << 1;
+ out[produced++] |= in[consumed++];
}
- }
- break;
- case MOD_8PSK:
- case MOD_8APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_8PSK:
+ case MOD_8APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 3;
- const unsigned char *c1, *c2, *c3;
+ const unsigned char *c1, *c2, *c3;
c1 = &in[consumed + rowaddr0];
c2 = &in[consumed + rowaddr1];
c3 = &in[consumed + rowaddr2];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<2) | (c2[j]<<1) | (c3[j]);
- consumed += 3;
+ out[produced++] = (c1[j] << 2) | (c2[j] << 1) | (c3[j]);
+ consumed += 3;
}
- }
- break;
- case MOD_16APSK:
- case MOD_8_8APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_16APSK:
+ case MOD_8_8APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 4;
const unsigned char *c1, *c2, *c3, *c4;
c1 = &in[consumed + rowaddr0];
@@ -543,15 +538,15 @@ namespace gr {
c3 = &in[consumed + rowaddr2];
c4 = &in[consumed + rowaddr3];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<3) | (c2[j]<<2) | (c3[j]<<1) | (c4[j]);
- consumed += 4;
+ out[produced++] = (c1[j] << 3) | (c2[j] << 2) | (c3[j] << 1) | (c4[j]);
+ consumed += 4;
}
- }
- break;
- case MOD_32APSK:
- case MOD_4_12_16APSK:
- case MOD_4_8_4_16APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_32APSK:
+ case MOD_4_12_16APSK:
+ case MOD_4_8_4_16APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 5;
const unsigned char *c1, *c2, *c3, *c4, *c5;
c1 = &in[consumed + rowaddr0];
@@ -560,15 +555,16 @@ namespace gr {
c4 = &in[consumed + rowaddr3];
c5 = &in[consumed + rowaddr4];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<4) | (c2[j]<<3) | (c3[j]<<2) | (c4[j]<<1) | c5[j];
- consumed += 5;
+ out[produced++] =
+ (c1[j] << 4) | (c2[j] << 3) | (c3[j] << 2) | (c4[j] << 1) | c5[j];
+ consumed += 5;
}
- }
- break;
- case MOD_64APSK:
- case MOD_8_16_20_20APSK:
- case MOD_4_12_20_28APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_64APSK:
+ case MOD_8_16_20_20APSK:
+ case MOD_4_12_20_28APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 6;
const unsigned char *c1, *c2, *c3, *c4, *c5, *c6;
c1 = &in[consumed + rowaddr0];
@@ -578,13 +574,14 @@ namespace gr {
c5 = &in[consumed + rowaddr4];
c6 = &in[consumed + rowaddr5];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<5) | (c2[j]<<4) | (c3[j]<<3) | (c4[j]<<2) | (c5[j]<<1) | c6[j];
- consumed += 6;
+ out[produced++] = (c1[j] << 5) | (c2[j] << 4) | (c3[j] << 3) |
+ (c4[j] << 2) | (c5[j] << 1) | c6[j];
+ consumed += 6;
}
- }
- break;
- case MOD_128APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_128APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = (frame_size + 6) / 7;
const unsigned char *c1, *c2, *c3, *c4, *c5, *c6, *c7;
c1 = &in[consumed + rowaddr0];
@@ -595,16 +592,17 @@ namespace gr {
c6 = &in[consumed + rowaddr5];
c7 = &in[consumed + rowaddr6];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<6) | (c2[j]<<5) | (c3[j]<<4) | (c4[j]<<3) | (c5[j]<<2) | (c6[j]<<1) | c7[j];
- consumed += 7;
+ out[produced++] = (c1[j] << 6) | (c2[j] << 5) | (c3[j] << 4) |
+ (c4[j] << 3) | (c5[j] << 2) | (c6[j] << 1) | c7[j];
+ consumed += 7;
}
for (int j = 0; j < 12; j++) {
- out[produced++] = 0x7f;
+ out[produced++] = 0x7f;
}
- }
- break;
- case MOD_256APSK:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ case MOD_256APSK:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 8;
const unsigned char *c1, *c2, *c3, *c4, *c5, *c6, *c7, *c8;
c1 = &in[consumed + rowaddr0];
@@ -616,30 +614,31 @@ namespace gr {
c7 = &in[consumed + rowaddr6];
c8 = &in[consumed + rowaddr7];
for (int j = 0; j < rows; j++) {
- out[produced++] = (c1[j]<<7) | (c2[j]<<6) | (c3[j]<<5) | (c4[j]<<4) | (c5[j]<<3) | (c6[j]<<2) | (c7[j]<<1) | c8[j];
- consumed += 8;
+ out[produced++] = (c1[j] << 7) | (c2[j] << 6) | (c3[j] << 5) |
+ (c4[j] << 4) | (c5[j] << 3) | (c6[j] << 2) |
+ (c7[j] << 1) | c8[j];
+ consumed += 8;
}
- }
- break;
- default:
- for (int i = 0; i < noutput_items; i += packed_items) {
+ }
+ break;
+ default:
+ for (int i = 0; i < noutput_items; i += packed_items) {
rows = frame_size / 2;
for (int j = 0; j < rows; j++) {
- out[produced] = in[consumed++] << 1;
- out[produced++] |= in[consumed++];
+ out[produced] = in[consumed++] << 1;
+ out[produced++] |= in[consumed++];
}
- }
- break;
- }
+ }
+ break;
+ }
- // Tell runtime system how many input items we consumed on
- // each input stream.
- consume_each (consumed);
+ // Tell runtime system how many input items we consumed on
+ // each input stream.
+ consume_each(consumed);
- // Tell runtime system how many output items we produced.
- return noutput_items;
- }
+ // Tell runtime system how many output items we produced.
+ return noutput_items;
+}
- } /* namespace dtv */
+} /* namespace dtv */
} /* namespace gr */
-