Fix uninitialized variable (leading to crashes when adding routes)

A route may be processed before latency-compensation callback
sets the route's output_latency. In this case a random offset
was added to the start/end position (via latency_offset).
This commit is contained in:
Robin Gareus 2022-06-15 14:15:07 +02:00
parent 2f02b809e7
commit 471330a292
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 2 additions and 3 deletions

View File

@ -364,8 +364,6 @@ public:
samplecnt_t signal_latency() const { return _signal_latency; }
samplecnt_t playback_latency (bool incl_downstream = false) const;
virtual samplecnt_t output_latency () const { return _output_latency; }
PBD::Signal0<void> active_changed;
PBD::Signal0<void> denormal_protection_changed;
PBD::Signal0<void> comment_changed;

View File

@ -118,6 +118,7 @@ Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType
, Muteable (sess, name)
, _active (true)
, _signal_latency (0)
, _output_latency (0)
, _disk_io_point (DiskIOPreFader)
, _meter_point (MeterPostFader)
, _pending_meter_point (MeterPostFader)
@ -403,7 +404,7 @@ Route::process_output_buffers (BufferSet& bufs,
const double speed = (is_auditioner() ? 1.0 : _session.transport_speed ());
const sampleoffset_t latency_offset = _signal_latency + output_latency ();
const sampleoffset_t latency_offset = _signal_latency + _output_latency;
if (speed < 0) {
/* when rolling backwards this can become negative */
start_sample -= latency_offset;