atsci_fs_checker_naive.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_FS_CHECKER_NAIVE_H_
00024 #define _ATSC_FS_CHECKER_NAIVE_H_
00025
00026 #include <atsci_fs_checker.h>
00027
00031 class atsci_fs_checker_naive : public atsci_fs_checker {
00032
00033 private:
00034 static const int SRSIZE = 1024;
00035 int d_index;
00036 float d_sample_sr[SRSIZE];
00037 atsc::syminfo d_tag_sr[SRSIZE];
00038 unsigned char d_bit_sr[SRSIZE];
00039 int d_field_num;
00040 int d_segment_num;
00041
00042 static const int OFFSET_511 = 0;
00043 static const int LENGTH_511 = 511 + 4;
00044 static const int OFFSET_2ND_63 = 578;
00045 static const int LENGTH_2ND_63 = 63;
00046
00047 static unsigned char s_511[LENGTH_511];
00048 static unsigned char s_63[LENGTH_2ND_63];
00049
00050 inline static int wrap (int index){ return index & (SRSIZE - 1); }
00051 inline static int incr (int index){ return wrap (index + 1); }
00052 inline static int decr (int index){ return wrap (index - 1); }
00053
00054 public:
00055
00056
00057 atsci_fs_checker_naive ();
00058 ~atsci_fs_checker_naive ();
00059
00060
00061 virtual void reset ();
00062 void filter (float input_sample, atsc::syminfo input_tag,
00063 float *output_sample, atsc::syminfo *output_tag);
00064
00065
00066
00068 int delay () const;
00069
00070 };
00071
00072
00073 #endif