diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h index 18aaa74ae7..a8e127a187 100644 --- a/libs/ardour/ardour/debug.h +++ b/libs/ardour/ardour/debug.h @@ -34,6 +34,7 @@ namespace PBD { namespace DEBUG { LIBARDOUR_API extern DebugBits AudioEngine; LIBARDOUR_API extern DebugBits AudioPlayback; + LIBARDOUR_API extern DebugBits AudioCacheRefill; LIBARDOUR_API extern DebugBits AudioUnitConfig; LIBARDOUR_API extern DebugBits AudioUnitGUI; LIBARDOUR_API extern DebugBits AudioUnitProcess; diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc index 67b391c384..b3a2e3bfc2 100644 --- a/libs/ardour/audio_playlist.cc +++ b/libs/ardour/audio_playlist.cc @@ -178,6 +178,13 @@ AudioPlaylist::read (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, ti DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("Playlist %1 read @ %2 for %3, channel %4, regions %5 mixdown @ %6 gain @ %7\n", name(), start.samples(), cnt.samples(), chan_n, regions.size(), mixdown_buffer, gain_buffer)); + DEBUG_TRACE (DEBUG::AudioCacheRefill, string_compose ("Playlist '%1' chn: %2 from %3 to %4 [s] PH@ %5\n", + name (), chan_n, + std::setprecision (3), std::fixed, + start.samples() / (float)_session.sample_rate (), + (start.samples() + cnt.samples()) / (float)_session.sample_rate (), + _session.transport_sample () / (float)_session.sample_rate ())); + samplecnt_t const scnt (cnt.samples ()); /* optimizing this memset() away involves a lot of conditionals diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 38ce0c36a7..89d79c6579 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -610,6 +610,11 @@ AudioRegion::read_at (Sample* buf, The caller has verified that we cover the desired section. */ + DEBUG_TRACE (DEBUG::AudioCacheRefill, string_compose ("- Region '%1' chn: %2 from %3 to %4 [s]\n", + name(), chan_n, + std::setprecision (3), std::fixed, + pos / (float)_session.sample_rate (), (pos + cnt) / (float)_session.sample_rate ())); + /* See doc/region_read.svg for a drawing which might help to explain what is going on. */ diff --git a/libs/ardour/debug.cc b/libs/ardour/debug.cc index 99a8dbce20..2cb4becc65 100644 --- a/libs/ardour/debug.cc +++ b/libs/ardour/debug.cc @@ -29,6 +29,7 @@ using namespace std; PBD::DebugBits PBD::DEBUG::AudioEngine = PBD::new_debug_bit ("AudioEngine"); PBD::DebugBits PBD::DEBUG::AudioPlayback = PBD::new_debug_bit ("audioplayback"); +PBD::DebugBits PBD::DEBUG::AudioCacheRefill = PBD::new_debug_bit ("audiocacherefill"); PBD::DebugBits PBD::DEBUG::AudioUnitConfig = PBD::new_debug_bit ("AudioUnitConfig"); PBD::DebugBits PBD::DEBUG::AudioUnitGUI = PBD::new_debug_bit ("AudioUnitGUI"); PBD::DebugBits PBD::DEBUG::AudioUnitProcess = PBD::new_debug_bit ("AudioUnitProcess"); diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc index d812648759..57976725cb 100644 --- a/libs/ardour/disk_reader.cc +++ b/libs/ardour/disk_reader.cc @@ -423,6 +423,10 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp cerr << "underrun for " << _name << " Available samples: " << available << " required: " << disk_samples_to_consume << endl; #endif DEBUG_TRACE (DEBUG::Butler, string_compose ("%1 underrun in %2, total space = %3 vs %4\n", DEBUG_THREAD_SELF, name (), available, disk_samples_to_consume)); + DEBUG_TRACE (DEBUG::AudioCacheRefill, string_compose ("DR '%1' underrun have %2 need %3 samples at pos %4\n", + name (), available, disk_samples_to_consume, + std::setprecision (3), std::fixed, + start_sample / (float)_session.sample_rate ())); Underrun (); return; }