diff options
author | David Robillard <d@drobilla.net> | 2008-01-19 03:49:52 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-01-19 03:49:52 +0000 |
commit | 4ca1fe7993adf63ea3f35958f63dd20ee546e7ae (patch) | |
tree | f773e6cf00e08a8260c2e2b28b8e16e28b39b887 /libs/ardour/audio_diskstream.cc | |
parent | f80fad313a21228f31201279cccaf555796c7eec (diff) |
Merge with trunk R2935.
git-svn-id: svn://localhost/ardour2/branches/3.0@2943 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_diskstream.cc')
-rw-r--r-- | libs/ardour/audio_diskstream.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index c36c9de184..d65183a84f 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -523,6 +523,11 @@ AudioDiskstream::process (nframes_t transport_frame, nframes_t nframes, nframes_ commit_should_unlock = false; + if (!_io->active()) { + _processed = true; + return 0; + } + check_record_status (transport_frame, nframes, can_record); nominally_recording = (can_record && re); @@ -744,6 +749,7 @@ AudioDiskstream::process (nframes_t transport_frame, nframes_t nframes, nframes_ nframes_t total = chaninfo->playback_vector.len[0] + chaninfo->playback_vector.len[1]; if (necessary_samples > total) { + cerr << "underrun for " << _name << endl; DiskUnderrun (); goto out; @@ -828,6 +834,10 @@ AudioDiskstream::commit (nframes_t nframes) { bool need_butler = false; + if (!_io->active()) { + return false; + } + if (_actual_speed < 0.0) { playback_sample -= playback_distance; } else { |