]> sigrok.org Git - pulseview.git/commitdiff
Session: Allow using sample rate from meta packet
authorSoeren Apel <redacted>
Sat, 12 Dec 2015 14:01:03 +0000 (15:01 +0100)
committerSoeren Apel <redacted>
Sat, 12 Dec 2015 14:01:03 +0000 (15:01 +0100)
Currently, PV only looks at the device config to determine the
sample rate. This breaks as input filters submit meta packets
containing the sample rate and provide no device config.

Example: load any file in PV using the raw binary input filter
and set the sample rate to anything but 0. PV will still show
'sa' as the time unit, indicating that it dismisses the sample
rate information sent in the meta packet.

This patch makes this work by using the sample rate if it
wasn't already set from the device config.

pv/session.cpp

index 2a794f0fb0c4af8a79b662e12b810ffdb28b510d..ef1159ee599f8abfbf0a7e6b90d6c100eeef3f44 100644 (file)
@@ -486,6 +486,11 @@ void Session::feed_in_meta(shared_ptr<Meta> meta)
        for (auto entry : meta->config()) {
                switch (entry.first->id()) {
                case SR_CONF_SAMPLERATE:
+                       // We can't rely on the header to always contain the sample rate,
+                       // so in case it's supplied via a meta packet, we use it.
+                       if (!cur_samplerate_)
+                               cur_samplerate_ = g_variant_get_uint64(entry.second.gobj());
+
                        /// @todo handle samplerate changes
                        break;
                default: