8#ifndef INCLUDED_DVBS2RX_XFECFRAME_DEMAPPER_CB_IMPL_H
9#define INCLUDED_DVBS2RX_XFECFRAME_DEMAPPER_CB_IMPL_H
15#include <volk/volk_alloc.hh>
28#ifdef CPU_FEATURES_ARCH_ANY_ARM
29#define XFECFRAME_POOL_SIZE 32
31#define XFECFRAME_POOL_SIZE 64
38 bool d_waiting_first_llr;
39 unsigned int d_fecframe_len;
40 unsigned int d_xfecframe_len;
41 unsigned int d_rowaddr0;
42 unsigned int d_rowaddr1;
43 unsigned int d_rowaddr2;
48 volk::vector<int8_t> d_aux_8i_buffer;
49 volk::vector<int8_t> d_aux_8i_buffer_2;
50 Modulation<gr_complex, int8_t>* d_mod;
51 std::unique_ptr<QpskConstellation> d_qpsk;
52 gr::thread::mutex d_mutex;
56 std::array<uint64_t, XFECFRAME_POOL_SIZE> d_xfecframe_saved;
57 size_t d_idx_xfecframe_buffer;
58 const pmt::pmt_t d_pdu_port_id = pmt::mp(
"llr_pdu");
59 void handle_llr_pdu(pmt::pmt_t pdu);
67 void forecast(
int noutput_items, gr_vector_int& ninput_items_required);
70 gr_vector_int& ninput_items,
71 gr_vector_const_void_star& input_items,
72 gr_vector_void_star& output_items);
Definition xfecframe_demapper_cb_impl.h:35
float get_snr()
Get the measured SNR.
Definition xfecframe_demapper_cb_impl.h:74
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
~xfecframe_demapper_cb_impl()
xfecframe_demapper_cb_impl(dvb_framesize_t framesize, dvb_code_rate_t rate, dvb_constellation_t constellation)
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
XFECFRAME Constellation Demapper.
Definition xfecframe_demapper_cb.h:24
dvb_framesize_t
Definition dvb_config.h:74
dvb_constellation_t
Definition dvb_config.h:80
dvb_code_rate_t
Definition dvb_config.h:20
Fixed-length double-ended queue with contiguous volk-aligned elements.
Definition gr_bch.h:22
#define XFECFRAME_POOL_SIZE
Definition xfecframe_demapper_cb_impl.h:31