This is more C++ than dsp - this compiles but segfaults:
atsc_equalizer.h:
class atsc_equalizer;
protected:
atsci_equalizer *d_equalizer;
atsc_equalizer.cc:
// peform the actual equalization
d_equalizer->filter (in, in_tags,
out, noutput_items);
atsci_equalizer.h:
class atsci_equalizer {
virtual void filter (const float *input_samples,
const atsc::syminfo *input_tags,
If I expunge all occurances of d_equalizer-> it’ll run w/o segfault.
Trying to change it to what worked in earlier updates:
atsc_equalizer.h:
class atsc_equalizer : public gr_sync_block
{
friend atsc_equalizer_sptr atsc_make_equalizer();
atsci_equalizer d_equalizer;
atsc_equalizer.cc:
// peform the actual equalization
d_equalizer.filter (in, in_tags,
out, noutput_items);
it fails to compile because:
./atsc_equalizer.h:41: error: cannot declare field
atsc_equalizer::d_equalizer' to be of type
atsci_equalizer’
./atsc_equalizer.h:41: error: because the following virtual functions
are abstract:
./atsci_equalizer.h:159: error: virtual void
atsci_equalizer::filter_field_sync(const float*, float*, int, int, int)
./atsci_equalizer.h:140: error: virtual void
atsci_equalizer::filter_data_seg_sync(const float*, float*, int, int)
Any advise on which way to go? I.e. should I just leave it
d_equalizer->filter() and look for problems elsewhere?
tia
–Chuck