Commit 6be13df3 authored by Stefan Westerfeld's avatar Stefan Westerfeld

Don't report empty results (if short decode fails).

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent ee82f4cc
...@@ -796,7 +796,8 @@ public: ...@@ -796,7 +796,8 @@ public:
float decode_error = 0; float decode_error = 0;
vector<int> bit_vec = code_decode_soft (sync_score.block_type, normalize_soft_bits (raw_bit_vec), &decode_error); vector<int> bit_vec = code_decode_soft (sync_score.block_type, normalize_soft_bits (raw_bit_vec), &decode_error);
result_set.add_pattern (sync_score, bit_vec, decode_error, ResultSet::Type::BLOCK); if (!bit_vec.empty())
result_set.add_pattern (sync_score, bit_vec, decode_error, ResultSet::Type::BLOCK);
total_count += 1; total_count += 1;
/* ---- update "all" pattern ---- */ /* ---- update "all" pattern ---- */
...@@ -821,9 +822,12 @@ public: ...@@ -821,9 +822,12 @@ public:
ab_bits[i * 2 + 1] = ab_raw_bit_vec[1][i]; ab_bits[i * 2 + 1] = ab_raw_bit_vec[1][i];
} }
vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, normalize_soft_bits (ab_bits), &decode_error); vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, normalize_soft_bits (ab_bits), &decode_error);
score_ab.index = sync_score.index; if (!bit_vec.empty())
score_ab.quality = (ab_quality[0] + ab_quality[1]) / 2; {
result_set.add_pattern (score_ab, bit_vec, decode_error, ResultSet::Type::BLOCK); score_ab.index = sync_score.index;
score_ab.quality = (ab_quality[0] + ab_quality[1]) / 2;
result_set.add_pattern (score_ab, bit_vec, decode_error, ResultSet::Type::BLOCK);
}
} }
last_block_type = sync_score.block_type; last_block_type = sync_score.block_type;
} }
...@@ -842,7 +846,8 @@ public: ...@@ -842,7 +846,8 @@ public:
float decode_error = 0; float decode_error = 0;
vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, soft_bit_vec, &decode_error); vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, soft_bit_vec, &decode_error);
result_set.add_pattern (score_all, bit_vec, decode_error, ResultSet::Type::ALL); if (!bit_vec.empty())
result_set.add_pattern (score_all, bit_vec, decode_error, ResultSet::Type::ALL);
} }
debug_sync_frame_count = frame_count (wav_data); debug_sync_frame_count = frame_count (wav_data);
...@@ -945,10 +950,12 @@ class ClipDecoder ...@@ -945,10 +950,12 @@ class ClipDecoder
float decode_error = 0; float decode_error = 0;
vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, normalize_soft_bits (raw_bit_vec), &decode_error); vector<int> bit_vec = code_decode_soft (ConvBlockType::ab, normalize_soft_bits (raw_bit_vec), &decode_error);
if (!bit_vec.empty())
SyncFinder::Score sync_score_nopad = sync_score; {
sync_score_nopad.index = time_offset_sec * wav_data.sample_rate(); SyncFinder::Score sync_score_nopad = sync_score;
result_set.add_pattern (sync_score_nopad, bit_vec, decode_error, ResultSet::Type::CLIP); sync_score_nopad.index = time_offset_sec * wav_data.sample_rate();
result_set.add_pattern (sync_score_nopad, bit_vec, decode_error, ResultSet::Type::CLIP);
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment