diff options
-rw-r--r-- | gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc | 10 | ||||
-rw-r--r-- | gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.h | 3 |
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: |