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:
parent
2f02b809e7
commit
471330a292
@ -364,8 +364,6 @@ public:
|
|||||||
samplecnt_t signal_latency() const { return _signal_latency; }
|
samplecnt_t signal_latency() const { return _signal_latency; }
|
||||||
samplecnt_t playback_latency (bool incl_downstream = false) const;
|
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> active_changed;
|
||||||
PBD::Signal0<void> denormal_protection_changed;
|
PBD::Signal0<void> denormal_protection_changed;
|
||||||
PBD::Signal0<void> comment_changed;
|
PBD::Signal0<void> comment_changed;
|
||||||
|
@ -118,6 +118,7 @@ Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType
|
|||||||
, Muteable (sess, name)
|
, Muteable (sess, name)
|
||||||
, _active (true)
|
, _active (true)
|
||||||
, _signal_latency (0)
|
, _signal_latency (0)
|
||||||
|
, _output_latency (0)
|
||||||
, _disk_io_point (DiskIOPreFader)
|
, _disk_io_point (DiskIOPreFader)
|
||||||
, _meter_point (MeterPostFader)
|
, _meter_point (MeterPostFader)
|
||||||
, _pending_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 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) {
|
if (speed < 0) {
|
||||||
/* when rolling backwards this can become negative */
|
/* when rolling backwards this can become negative */
|
||||||
start_sample -= latency_offset;
|
start_sample -= latency_offset;
|
||||||
|
Loading…
Reference in New Issue
Block a user