const sr_datafeed_logic &logic)
{
assert(_unit_size == logic.unitsize);
+ assert((logic.length % _unit_size) == 0);
lock_guard<recursive_mutex> lock(_mutex);
- append_data(logic.data, logic.length);
+ append_data(logic.data, logic.length / _unit_size);
// Generate the first mip-map from the data
append_payload_to_mipmap();
{
//----- Continue to search -----//
level = min_level;
- fast_forward = true;
+
+ // We cannot fast-forward if there is no mip-map data at
+ // at the minimum level.
+ fast_forward = (_mip_map[level].data != NULL);
if (min_length < MipMapScaleFactor)
{
// We can fast forward only if there was no change
const bool sample =
(get_sample(index) & sig_mask) != 0;
- fast_forward = last_sample == sample;
+ if (last_sample != sample)
+ fast_forward = false;
}
if (fast_forward) {