]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.cpp
Fix #1089 by updating the signal labels and group labels
[pulseview.git] / pv / data / decodesignal.cpp
index eb7a0d3b78557f413ba10a57fdf477681a13c75f..1ff9d76d0a6c7309b821c406e93aaa7cc0108b33 100644 (file)
@@ -978,6 +978,8 @@ void DecodeSignal::decode_proc()
 
 void DecodeSignal::start_srd_session()
 {
+       uint64_t samplerate;
+
        if (srd_session_)
                stop_srd_session();
 
@@ -993,6 +995,7 @@ void DecodeSignal::start_srd_session()
                if (!di) {
                        error_message_ = tr("Failed to create decoder instance");
                        srd_session_destroy(srd_session_);
+                       srd_session_ = nullptr;
                        return;
                }
 
@@ -1003,8 +1006,10 @@ void DecodeSignal::start_srd_session()
        }
 
        // 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);