diff options
author | Robin Gareus <robin@gareus.org> | 2015-01-09 06:02:36 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-01-09 06:08:15 +0100 |
commit | 7f72e7d879312e0130bc840566b572b34fe0c591 (patch) | |
tree | 2942d5f9aa5da300f52f1e1d2748e37ac6c23f61 /libs/ardour/session_ltc.cc | |
parent | 7235ece8986f335d52d8b76f5135ddb3d794de35 (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.cc | 4 |
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 |