revert 8ca546e - original version was correct (note added)

This commit is contained in:
Robin Gareus 2014-10-11 15:00:52 +02:00 committed by Paul Davis
parent 644840ee7a
commit b2fb61aaa1

View file

@ -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