const double DecoderStack::DecodeMargin = 1.0;
const double DecoderStack::DecodeThreshold = 0.2;
const int64_t DecoderStack::DecodeChunkLength = 4096;
+const unsigned int DecoderStack::DecodeNotifyPeriod = 65536;
mutex DecoderStack::_global_decode_mutex;
lock_guard<mutex> lock(_output_mutex);
_samples_decoded = chunk_end;
}
+
+ if (i % DecodeNotifyPeriod == 0)
+ new_decode_data();
}
new_decode_data();
srd_session *session;
srd_decoder_inst *prev_di = NULL;
- assert(data);
assert(_snapshot);
// Create the session
{
{
unique_lock<mutex> lock(_input_mutex);
- _sample_count = _snapshot->get_sample_count();
+ if (_snapshot)
+ _sample_count = _snapshot->get_sample_count();
}
_input_cond.notify_one();
}
{
{
unique_lock<mutex> lock(_input_mutex);
- _frame_complete = true;
+ if (_snapshot)
+ _frame_complete = true;
}
_input_cond.notify_one();
}