summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc10
-rw-r--r--gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h3
2 files changed, 8 insertions, 5 deletions
diff --git a/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc b/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc
index 8e86eb4f64..776009ff42 100644
--- a/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc
+++ b/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc
@@ -268,6 +268,8 @@ namespace gr {
sr |= 0x4000;
}
}
+ bb_randomize64 = (uint64_t*)&bb_randomise[0];
+
}
int
@@ -275,12 +277,12 @@ namespace gr {
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];
+ const uint64_t *in = (const uint64_t *) input_items[0];
+ uint64_t *out = (uint64_t *) output_items[0];
for (int i = 0; i < noutput_items; i += kbch) {
- for (int j = 0; j < (int)kbch; ++j) {
- out[i + j] = in[i + j] ^ bb_randomise[j];
+ for (int j = 0; j < kbch/8; ++j) {
+ *out++ = *in++ ^ bb_randomize64[j];
}
}
diff --git a/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h b/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h
index d717731502..062e1b68a2 100644
--- a/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h
+++ b/gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h
@@ -30,8 +30,9 @@ namespace gr {
class dvb_bbscrambler_bb_impl : public dvb_bbscrambler_bb
{
private:
- unsigned int kbch;
+ int kbch;
unsigned char bb_randomise[FRAME_SIZE_NORMAL];
+ uint64_t* bb_randomize64;
void init_bb_randomiser(void);
public: