diff options
author | Bram (morningbird) <bram@morningbird> | 2012-08-01 15:06:22 +0200 |
---|---|---|
committer | Bram (morningbird) <bram@morningbird> | 2012-08-01 15:06:22 +0200 |
commit | 06268c30c784051dfa5d651cb9195298094113b1 (patch) | |
tree | 97460917e388bb4592605f29005af4666474ed53 /src/TimestampDecoder.h | |
parent | b593e1cab3a31dff928eafd22f25f16e9daab61d (diff) | |
download | dabmod-06268c30c784051dfa5d651cb9195298094113b1.tar.gz dabmod-06268c30c784051dfa5d651cb9195298094113b1.tar.bz2 dabmod-06268c30c784051dfa5d651cb9195298094113b1.zip |
dabmod: offset calculation includes pipeline delay due to FIRFilter
Diffstat (limited to 'src/TimestampDecoder.h')
-rw-r--r-- | src/TimestampDecoder.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/TimestampDecoder.h b/src/TimestampDecoder.h index 3a1fb1b..68fe546 100644 --- a/src/TimestampDecoder.h +++ b/src/TimestampDecoder.h @@ -25,18 +25,27 @@ #ifndef TIMESTAMP_DECODER_H #define TIMESTAMP_DECODER_H -#include "Eti.h" +#include <queue> #include <time.h> #include <math.h> #include <stdio.h> +#include "Eti.h" struct modulator_offset_config { bool use_offset_fixed; double offset_fixed; + /* These two fields are used when the modulator is run with a fixed offset */ bool use_offset_file; char* offset_filename; + /* These two fields are used when the modulator reads the offset from a file */ + + unsigned delay_calculation_pipeline_stages; + /* Specifies by how many stages the timestamp must be delayed. + * (e.g. The FIRFilter is pipelined, therefore we must increase + * delay_calculation_pipeline_stages by one if the filter is used + */ }; struct frame_timestamp @@ -149,6 +158,14 @@ class TimestampDecoder /* Disable timstamps until full time has been received in mnsc */ bool full_timestamp_received_mnsc; + + /* when pipelining, we must shift the calculated timestamps + * through this queue. Otherwise, it would not be possible to + * synchronise two modulators if only one uses (for instance) the + * FIRFilter (1 stage pipeline) + */ + std::queue<struct frame_timestamp*> queue_timestamps; + }; #endif |