mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-24 15:37:48 +01:00
revert 8ca546e - original version was correct (note added)
This commit is contained in:
parent
644840ee7a
commit
b2fb61aaa1
1 changed files with 15 additions and 2 deletions
|
|
@ -244,13 +244,26 @@ Session::ltc_tx_send_time_code_for_cycle (framepos_t start_frame, framepos_t end
|
|||
/* port latency compensation:
|
||||
* The _generated timecode_ is offset by the port-latency,
|
||||
* therefore the offset depends on the direction of transport.
|
||||
*
|
||||
* latency is compensated by adding it to the timecode to
|
||||
* be generated. e.g. if the signal will reach the output in
|
||||
* N samples time from now, generate the timecode for (now + N).
|
||||
*
|
||||
* sample-sync is achieved by further calculating the difference
|
||||
* between the timecode and the session-transport and offsetting the
|
||||
* buffer.
|
||||
*
|
||||
* The timecode is generated directly in the Session process callback
|
||||
* using _transport_frame. It requires that the session has set the
|
||||
* port's playback latency to worst_playback_latency() prior to
|
||||
* calling ltc_tx_send_time_code_for_cycle().
|
||||
*/
|
||||
framepos_t cycle_start_frame;
|
||||
|
||||
if (current_speed < 0) {
|
||||
cycle_start_frame = (start_frame + ltc_out_latency.max);
|
||||
} else if (current_speed > 0) {
|
||||
cycle_start_frame = (start_frame - ltc_out_latency.max);
|
||||
} else if (current_speed > 0) {
|
||||
cycle_start_frame = (start_frame + ltc_out_latency.max);
|
||||
} else {
|
||||
/* There is no need to compensate for latency when not rolling
|
||||
* rather send the accurate NOW timecode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue