atsci_equalizer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _ATSC_EQUALIZER_H_
00024 #define _ATSC_EQUALIZER_H_
00025
00026 #include <atsci_syminfo.h>
00027
00031 class atsci_equalizer {
00032
00033 private:
00034
00035
00036
00037
00038 bool d_locked_p;
00039
00040
00041
00042
00043
00044
00045 int d_offset_from_last_field_sync;
00046
00047 int d_current_field;
00048
00049
00050 public:
00051
00052
00053 atsci_equalizer ();
00054 virtual ~atsci_equalizer ();
00055
00056
00057
00063 virtual void reset ();
00064
00080 virtual void filter (const float *input_samples,
00081 const atsc::syminfo *input_tags,
00082 float *output_samples,
00083 int nsamples);
00084
00085
00086
00093 virtual int ntaps () const = 0;
00094
00108 virtual int npretaps () const = 0;
00109
00110
00111 protected:
00112
00123 virtual void filter_normal (const float *input_samples,
00124 float *output_samples,
00125 int nsamples) = 0;
00126
00137 virtual void filter_data_seg_sync (const float *input_samples,
00138 float *output_samples,
00139 int nsamples,
00140 int offset) = 0;
00141
00155 virtual void filter_field_sync (const float *input_samples,
00156 float *output_samples,
00157 int nsamples,
00158 int offset,
00159 int which_field) = 0;
00160 };
00161
00162
00163 #endif