summaryrefslogtreecommitdiff
path: root/libs/ardour/session_ltc.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-09 06:02:36 +0100
committerRobin Gareus <robin@gareus.org>2015-01-09 06:08:15 +0100
commit7f72e7d879312e0130bc840566b572b34fe0c591 (patch)
tree2942d5f9aa5da300f52f1e1d2748e37ac6c23f61 /libs/ardour/session_ltc.cc
parent7235ece8986f335d52d8b76f5135ddb3d794de35 (diff)
fix LTC alignment.
LTC-slave: offset the parsed LTC-frame instead of changing the frame's timestamp. This fixes an issue with freewheel timeout and delta-calculation. Align transport-time with output to match capture alignment: "with existing material". LTC-generator: follow suit. align clock with master-bus out. This is a semi-permanent workaround. Once [tracks feeding] the master-bus is/are delayed to align to output. The generator needs to use (worst_track_latency not worst_playback_latency)
Diffstat (limited to 'libs/ardour/session_ltc.cc')
-rw-r--r--libs/ardour/session_ltc.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/ardour/session_ltc.cc b/libs/ardour/session_ltc.cc
index 1ac2681641..2cd21f9afd 100644
--- a/libs/ardour/session_ltc.cc
+++ b/libs/ardour/session_ltc.cc
@@ -261,9 +261,9 @@ Session::ltc_tx_send_time_code_for_cycle (framepos_t start_frame, framepos_t end
framepos_t cycle_start_frame;
if (current_speed < 0) {
- cycle_start_frame = (start_frame - ltc_out_latency.max);
+ cycle_start_frame = (start_frame - ltc_out_latency.max + worst_playback_latency());
} else if (current_speed > 0) {
- cycle_start_frame = (start_frame + ltc_out_latency.max);
+ cycle_start_frame = (start_frame + ltc_out_latency.max - worst_playback_latency());
} else {
/* There is no need to compensate for latency when not rolling
* rather send the accurate NOW timecode