diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index b53470da6b..058010788f 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -306,6 +306,7 @@ public: samplecnt_t capture_duration () const { return _capture_duration; } unsigned int capture_xruns () const { return _capture_xruns; } + unsigned int export_xruns () const { return _export_xruns; } void refill_all_track_buffers (); Butler* butler() { return _butler; } @@ -1399,6 +1400,7 @@ private: bool _have_captured; samplecnt_t _capture_duration; unsigned int _capture_xruns; + unsigned int _export_xruns; bool _non_soloed_outs_muted; bool _listening; uint32_t _listen_cnt; diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 22892b574b..5e5ee50d5b 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -207,6 +207,7 @@ Session::Session (AudioEngine &eng, , _have_captured (false) , _capture_duration (0) , _capture_xruns (0) + , _export_xruns (0) , _non_soloed_outs_muted (false) , _listening (false) , _listen_cnt (0) diff --git a/libs/ardour/session_export.cc b/libs/ardour/session_export.cc index bb7333e85a..5df0c6f60d 100644 --- a/libs/ardour/session_export.cc +++ b/libs/ardour/session_export.cc @@ -95,6 +95,7 @@ Session::pre_export () config.set_external_sync (false); + _export_xruns = 0; _exporting = true; export_status->set_running (true); export_status->Finished.connect_same_thread (*this, boost::bind (&Session::finalize_audio_export, this, _1)); diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 324d3bc1d0..12308ec956 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -1885,6 +1885,10 @@ Session::xrun_recovery () } } + else if (exporting ()) { + assert (realtime_export ()); + ++_export_xruns; + } } void