diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2022-10-03 21:06:48 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2022-10-03 21:06:48 +0200 |
commit | 230f717a30b1f9a6e2f04bf1b8dc363d793cc86c (patch) | |
tree | 2110d46dcbc3b993f4ddea8b58b22dbc4d9f807f /src/fig0_1.cpp | |
parent | 99700e33bbeaeba9a1a670eb23e3bc2d8114edaf (diff) | |
download | etisnoop-230f717a30b1f9a6e2f04bf1b8dc363d793cc86c.tar.gz etisnoop-230f717a30b1f9a6e2f04bf1b8dc363d793cc86c.tar.bz2 etisnoop-230f717a30b1f9a6e2f04bf1b8dc363d793cc86c.zip |
Try to decode ODR-DabMux watermark
Diffstat (limited to 'src/fig0_1.cpp')
-rw-r--r-- | src/fig0_1.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/fig0_1.cpp b/src/fig0_1.cpp index c812b46..db2250c 100644 --- a/src/fig0_1.cpp +++ b/src/fig0_1.cpp @@ -26,19 +26,21 @@ #include "figs.hpp" #include <cstdio> -#include <unordered_set> +#include <vector> +#include <algorithm> -static std::unordered_set<int> subchannels_seen; +static std::vector<int> subchannels_seen; -bool fig0_1_is_complete(int subch_id) +bool fig0_1_is_complete(fig0_common_t& fig0, int subch_id) { - bool complete = subchannels_seen.count(subch_id); + bool complete = std::count(subchannels_seen.begin(), subchannels_seen.end(), subch_id) > 0; if (complete) { + fig0.wm_decoder.push_fig0_1_bit(subchannels_seen.front() < subchannels_seen.back()); subchannels_seen.clear(); } else { - subchannels_seen.insert(subch_id); + subchannels_seen.push_back(subch_id); } return complete; @@ -55,7 +57,7 @@ fig_result_t fig0_1(fig0_common_t& fig0, const display_settings_t &disp) while (i <= fig0.figlen-3) { // iterate over subchannels int subch_id = f[i] >> 2; - r.complete |= fig0_1_is_complete(subch_id); + r.complete |= fig0_1_is_complete(fig0, subch_id); int start_addr = ((f[i] & 0x03) << 8) | (f[i+1]); |