diff options
author | Robin Gareus <robin@gareus.org> | 2019-11-08 17:08:47 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-11-08 17:50:13 +0100 |
commit | 08fdb982629e81b5f89740f7db6eaf13801c8edc (patch) | |
tree | 51fc02bc9af21aad8204c2c2de9f15fc2ad00de0 /libs/ardour/session_transport.cc | |
parent | f37758ffb7face651692770221953d584eb38380 (diff) |
Fix loop/pre-roll
Pre-roll to fill buffers only needs to be done once when starting
to play or when locating.
Seamless looping just continues. Every processor takes the loop
position into account locally.
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r-- | libs/ardour/session_transport.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 5baa39a0f8..6b0d81172b 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -248,7 +248,9 @@ Session::do_locate (samplepos_t target_sample, bool with_roll, bool with_flush, // thread(s?) can restart. g_atomic_int_inc (&_seek_counter); _last_roll_or_reversal_location = target_sample; - _remaining_latency_preroll = worst_latency_preroll (); + if (!for_loop_end) { + _remaining_latency_preroll = worst_latency_preroll (); + } timecode_time(_transport_sample, transmitting_timecode_time); // XXX here? /* do "stopped" stuff if: |