LTC_Slave: count frames since reset
This commit is contained in:
parent
18f75c9f8a
commit
920fc66540
@ -531,6 +531,7 @@ public:
|
||||
bool fps_detected;
|
||||
|
||||
samplecnt_t monotonic_cnt;
|
||||
uint64_t frames_since_reset;
|
||||
int delayedlocked;
|
||||
|
||||
int ltc_detect_fps_cnt;
|
||||
|
@ -54,6 +54,7 @@ LTC_TransportMaster::LTC_TransportMaster (std::string const & name)
|
||||
, samples_per_ltc_frame (0)
|
||||
, fps_detected (false)
|
||||
, monotonic_cnt (0)
|
||||
, frames_since_reset (0)
|
||||
, delayedlocked (10)
|
||||
, ltc_detect_fps_cnt (0)
|
||||
, ltc_detect_fps_max (0)
|
||||
@ -545,21 +546,25 @@ void
|
||||
LTC_TransportMaster::pre_process (ARDOUR::pframes_t nframes, samplepos_t now, boost::optional<samplepos_t> session_pos)
|
||||
{
|
||||
Sample* in = (Sample*) AudioEngine::instance()->port_engine().get_buffer (_port->port_handle(), nframes);
|
||||
sampleoffset_t skip = now - (monotonic_cnt + nframes);
|
||||
monotonic_cnt = now;
|
||||
sampleoffset_t skip;
|
||||
|
||||
DEBUG_TRACE (DEBUG::LTC, string_compose ("pre-process - TID:%1 | latency: %2 | skip %3 | session ? %4| last %5 | dir %6 | sp %7\n",
|
||||
pthread_name(), ltc_slave_latency.max, skip, (_session ? 'y' : 'n'), current.timestamp, transport_direction, current.speed));
|
||||
|
||||
if (current.timestamp == 0) {
|
||||
if (current.timestamp == 0 || frames_since_reset == 0) {
|
||||
if (delayedlocked < 10) {
|
||||
++delayedlocked;
|
||||
}
|
||||
|
||||
} else if (current.speed != 0) {
|
||||
monotonic_cnt = now;
|
||||
skip = 0;
|
||||
|
||||
} else {
|
||||
|
||||
skip = now - (monotonic_cnt + nframes);
|
||||
monotonic_cnt = now;
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::LTC, string_compose ("pre-process - TID:%1 | latency: %2 | skip %3 | session ? %4| last %5 | dir %6 | sp %7 | dl %8\n",
|
||||
pthread_name(), ltc_slave_latency.max, skip, (_session ? 'y' : 'n'), current.timestamp, transport_direction, current.speed, delayedlocked));
|
||||
|
||||
DEBUG_TRACE (DEBUG::LTC, string_compose ("pre-process with audio clock time: %1\n", now));
|
||||
|
||||
/* if the audioengine failed to take the process lock, it won't
|
||||
|
Loading…
Reference in New Issue
Block a user