projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Util: Fix malformed time formatting
[pulseview.git]
/
pv
/
data
/
decoderstack.cpp
diff --git
a/pv/data/decoderstack.cpp
b/pv/data/decoderstack.cpp
index e0b16573430d8ef466309363af9e7b29ba9a8d1a..ef497f72bb29e2e80eaba88676340c6d499949d7 100644
(file)
--- a/
pv/data/decoderstack.cpp
+++ b/
pv/data/decoderstack.cpp
@@
-27,7
+27,7
@@
#include "decoderstack.hpp"
#include <pv/data/logic.hpp>
#include "decoderstack.hpp"
#include <pv/data/logic.hpp>
-#include <pv/data/logics
napsho
t.hpp>
+#include <pv/data/logics
egmen
t.hpp>
#include <pv/data/decode/decoder.hpp>
#include <pv/data/decode/annotation.hpp>
#include <pv/session.hpp>
#include <pv/data/decode/decoder.hpp>
#include <pv/data/decode/annotation.hpp>
#include <pv/session.hpp>
@@
-62,6
+62,8
@@
mutex DecoderStack::global_decode_mutex_;
DecoderStack::DecoderStack(pv::Session &session,
const srd_decoder *const dec) :
session_(session),
DecoderStack::DecoderStack(pv::Session &session,
const srd_decoder *const dec) :
session_(session),
+ start_time_(0),
+ samplerate_(0),
sample_count_(0),
frame_complete_(false),
samples_decoded_(0)
sample_count_(0),
frame_complete_(false),
samples_decoded_(0)
@@
-105,13
+107,23
@@
void DecoderStack::remove(int index)
// Find the decoder in the stack
auto iter = stack_.begin();
// Find the decoder in the stack
auto iter = stack_.begin();
- for(int i = 0; i < index; i++, iter++)
+ for
(int i = 0; i < index; i++, iter++)
assert(iter != stack_.end());
// Delete the element
stack_.erase(iter);
}
assert(iter != stack_.end());
// Delete the element
stack_.erase(iter);
}
+double DecoderStack::samplerate() const
+{
+ return samplerate_;
+}
+
+double DecoderStack::start_time() const
+{
+ return start_time_;
+}
+
int64_t DecoderStack::samples_decoded() const
{
lock_guard<mutex> decode_lock(output_mutex_);
int64_t DecoderStack::samples_decoded() const
{
lock_guard<mutex> decode_lock(output_mutex_);
@@
-233,7
+245,7
@@
void DecoderStack::begin_decode()
// We get the logic data of the first channel in the list.
// This works because we are currently assuming all
// We get the logic data of the first channel in the list.
// This works because we are currently assuming all
- // LogicSignals have the same data/s
napsho
t
+ // LogicSignals have the same data/s
egmen
t
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (dec && !dec->channels().empty() &&
((logic_signal = (*dec->channels().begin()).second)) &&
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (dec && !dec->channels().empty() &&
((logic_signal = (*dec->channels().begin()).second)) &&
@@
-243,16
+255,16
@@
void DecoderStack::begin_decode()
if (!data)
return;
if (!data)
return;
- // Check we have a s
napsho
t of data
- const deque< shared_ptr<pv::data::LogicS
napshot> > &snapsho
ts =
- data->logic_s
napsho
ts();
- if (s
napsho
ts.empty())
+ // Check we have a s
egmen
t of data
+ const deque< shared_ptr<pv::data::LogicS
egment> > &segmen
ts =
+ data->logic_s
egmen
ts();
+ if (s
egmen
ts.empty())
return;
return;
- s
napshot_ = snapsho
ts.front();
+ s
egment_ = segmen
ts.front();
// Get the samplerate and start time
// Get the samplerate and start time
- start_time_ =
data->get_
start_time();
- samplerate_ =
data
->samplerate();
+ start_time_ =
segment_->
start_time();
+ samplerate_ =
segment_
->samplerate();
if (samplerate_ == 0.0)
samplerate_ = 1.0;
if (samplerate_ == 0.0)
samplerate_ = 1.0;
@@
-260,7
+272,7
@@
void DecoderStack::begin_decode()
decode_thread_ = std::thread(&DecoderStack::decode_proc, this);
}
decode_thread_ = std::thread(&DecoderStack::decode_proc, this);
}
-uint64_t DecoderStack::
get_
max_sample_count() const
+uint64_t DecoderStack::max_sample_count() const
{
uint64_t max_sample_count = 0;
{
uint64_t max_sample_count = 0;
@@
-274,7
+286,7
@@
uint64_t DecoderStack::get_max_sample_count() const
optional<int64_t> DecoderStack::wait_for_data() const
{
unique_lock<mutex> input_lock(input_mutex_);
optional<int64_t> DecoderStack::wait_for_data() const
{
unique_lock<mutex> input_lock(input_mutex_);
- while(!interrupt_ && !frame_complete_ &&
+ while
(!interrupt_ && !frame_complete_ &&
samples_decoded_ >= sample_count_)
input_cond_.wait(input_lock);
return boost::make_optional(!interrupt_ &&
samples_decoded_ >= sample_count_)
input_cond_.wait(input_lock);
return boost::make_optional(!interrupt_ &&
@@
-289,7
+301,7
@@
void DecoderStack::decode_data(
uint8_t chunk[DecodeChunkLength];
const unsigned int chunk_sample_count =
uint8_t chunk[DecodeChunkLength];
const unsigned int chunk_sample_count =
- DecodeChunkLength / s
napsho
t_->unit_size();
+ DecodeChunkLength / s
egmen
t_->unit_size();
for (int64_t i = 0; !interrupt_ && i < sample_count;
i += chunk_sample_count)
for (int64_t i = 0; !interrupt_ && i < sample_count;
i += chunk_sample_count)
@@
-298,10
+310,10
@@
void DecoderStack::decode_data(
const int64_t chunk_end = min(
i + chunk_sample_count, sample_count);
const int64_t chunk_end = min(
i + chunk_sample_count, sample_count);
- s
napsho
t_->get_samples(chunk, i, chunk_end);
+ s
egmen
t_->get_samples(chunk, i, chunk_end);
- if (srd_session_send(session, i,
i + sample_count
, chunk,
- (chunk_end - i) * unit_size) != SRD_OK) {
+ if (srd_session_send(session, i,
chunk_end
, chunk,
+ (chunk_end - i) * unit_size
, unit_size
) != SRD_OK) {
error_message_ = tr("Decoder reported an error");
break;
}
error_message_ = tr("Decoder reported an error");
break;
}
@@
-322,20
+334,20
@@
void DecoderStack::decode_proc()
{
optional<int64_t> sample_count;
srd_session *session;
{
optional<int64_t> sample_count;
srd_session *session;
- srd_decoder_inst *prev_di =
NULL
;
+ srd_decoder_inst *prev_di =
nullptr
;
- assert(s
napsho
t_);
+ assert(s
egmen
t_);
// Create the session
srd_session_new(&session);
assert(session);
// Create the decoders
// Create the session
srd_session_new(&session);
assert(session);
// Create the decoders
- const unsigned int unit_size = s
napsho
t_->unit_size();
+ const unsigned int unit_size = s
egmen
t_->unit_size();
for (const shared_ptr<decode::Decoder> &dec : stack_)
{
for (const shared_ptr<decode::Decoder> &dec : stack_)
{
- srd_decoder_inst *const di = dec->create_decoder_inst(session
, unit_size
);
+ srd_decoder_inst *const di = dec->create_decoder_inst(session);
if (!di)
{
if (!di)
{
@@
-353,7
+365,7
@@
void DecoderStack::decode_proc()
// Get the intial sample count
{
unique_lock<mutex> input_lock(input_mutex_);
// Get the intial sample count
{
unique_lock<mutex> input_lock(input_mutex_);
- sample_count = sample_count_ = s
napsho
t_->get_sample_count();
+ sample_count = sample_count_ = s
egmen
t_->get_sample_count();
}
// Start the session
}
// Start the session
@@
-367,7
+379,7
@@
void DecoderStack::decode_proc()
do {
decode_data(*sample_count, unit_size, session);
do {
decode_data(*sample_count, unit_size, session);
- } while(error_message_.isEmpty() && (sample_count = wait_for_data()));
+ } while
(error_message_.isEmpty() && (sample_count = wait_for_data()));
// Destroy the session
srd_session_destroy(session);
// Destroy the session
srd_session_destroy(session);
@@
-424,8
+436,8
@@
void DecoderStack::on_data_received()
{
{
unique_lock<mutex> lock(input_mutex_);
{
{
unique_lock<mutex> lock(input_mutex_);
- if (s
napsho
t_)
- sample_count_ = s
napsho
t_->get_sample_count();
+ if (s
egmen
t_)
+ sample_count_ = s
egmen
t_->get_sample_count();
}
input_cond_.notify_one();
}
}
input_cond_.notify_one();
}
@@
-434,7
+446,7
@@
void DecoderStack::on_frame_ended()
{
{
unique_lock<mutex> lock(input_mutex_);
{
{
unique_lock<mutex> lock(input_mutex_);
- if (s
napsho
t_)
+ if (s
egmen
t_)
frame_complete_ = true;
}
input_cond_.notify_one();
frame_complete_ = true;
}
input_cond_.notify_one();