// Create initial logic mux segment
shared_ptr<LogicSegment> output_segment =
- make_shared<LogicSegment>(*logic_mux_data_, logic_mux_unit_size_, 0);
+ make_shared<LogicSegment>(*logic_mux_data_, segment_id,
+ logic_mux_unit_size_, 0);
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(0));
segment_id++;
output_segment =
- make_shared<LogicSegment>(*logic_mux_data_, logic_mux_unit_size_, 0);
+ make_shared<LogicSegment>(*logic_mux_data_, segment_id,
+ logic_mux_unit_size_, 0);
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(segment_id));
void DecodeSignal::start_srd_session()
{
+ uint64_t samplerate;
+
if (srd_session_)
stop_srd_session();
if (!di) {
error_message_ = tr("Failed to create decoder instance");
srd_session_destroy(srd_session_);
+ srd_session_ = nullptr;
return;
}
}
// Start the session
- srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE,
- g_variant_new_uint64(segments_.at(current_segment_id_).samplerate));
+ samplerate = segments_.at(current_segment_id_).samplerate;
+ if (samplerate)
+ srd_session_metadata_set(srd_session_, SRD_CONF_SAMPLERATE,
+ g_variant_new_uint64(samplerate));
srd_pd_output_callback_add(srd_session_, SRD_OUTPUT_ANN,
DecodeSignal::annotation_callback, this);