const shared_ptr<pv::data::LogicSnapshot> &snapshot =
snapshots.front();
const int64_t sample_count = snapshot->get_sample_count();
+ const unsigned int unit_size = snapshot->unit_size();
const unsigned int chunk_sample_count =
- DecodeChunkLength / snapshot->unit_size();
+ DecodeChunkLength / unit_size;
// Create the session
srd_session_new(&session);
i + chunk_sample_count, sample_count);
snapshot->get_samples(chunk, i, chunk_end);
- if (srd_session_send(session, i, i + sample_count,
- chunk, chunk_end - i) != SRD_OK) {
+ if (srd_session_send(session, i, i + sample_count, chunk,
+ (chunk_end - i) * unit_size) != SRD_OK) {
_error_message = tr("Decoder reported an error");
break;
}
lock_guard<recursive_mutex> lock(_mutex);
const size_t size = (end_sample - start_sample) * _unit_size;
- memcpy(data, (const uint8_t*)_data + start_sample, size);
+ memcpy(data, (const uint8_t*)_data + start_sample * _unit_size, size);
}
void LogicSnapshot::reallocate_mipmap_level(MipMapLevel &m)