summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_diskstream.cc
AgeCommit message (Collapse)Author
2015-07-23avoid llabs ambiguityRobin Gareus
(old gcc has a built-in)
2015-06-30when seeking, completely refill buffers rather than just a partial refillPaul Davis
2015-06-30fix -Wabsolute-valueRobin Gareus
2015-06-29remove debugging outputPaul Davis
2015-06-29fix unused but usable variable warningPaul Davis
2015-06-29comment unused but potentially usable variablesPaul Davis
2015-06-29comment out two verbose debugging outputsPaul Davis
2015-06-29make sure we allocate large enough buffers when doing a non-butler context ↵Paul Davis
disk buffer refill. The size of the buffer now needs to reflect that we calculate read refills in bytes, and if we are not using 32 bit float sample format on disk, that can translate into > 1M samples.
2015-06-29two tweaks required to fix up previous commitPaul Davis
2015-06-29ensure that working buffers (for gain + mixing) are large enough.Paul Davis
Remove AudioDiskstream and AudioSource _working_buffers_size members, since they are no longer used
2015-06-29more tweaks for varifill model, and avoid filling playback buffers during ↵Paul Davis
session loading Conflicts: libs/ardour/diskstream.cc libs/ardour/session.cc libs/ardour/session_state.cc Conflicts: libs/ardour/session.cc
2015-06-29add initial support for vari-fillPaul Davis
When refilling playback buffer, try to fill it completely, or at least using the next-lowest power-of-2 as the amount to read. When locating, where we use do_refill_with_alloc(), only partially fill the buffer. Work not yet finished, but possibly promising.
2015-06-29Tracks does not (want to) support destructive tracksPaul Davis
2015-06-16add Record-Safe feature to libardour (from Nikolay Polyanovskii)Paul Davis
2015-04-28tape-track diskstream fixesRobin Gareus
Due to the change to use a 64bit timeline (int64 as opposed to previously [unsigned] pframes_t) many cases special to tape-tracks no longer work. e.g. region->length() can returns -1, rather than INT64_MAX. which breaks ‘overlap’ in Evoral::Coverage. which in turn breaks tape track’s use of ::find_next_region(). This commits begins the slow process to move away from relying on integer overflow to wrap negative numbers for tape tracks and restores basic functionality. Still various edge cases pertaining tape tracks remain. particularly when changing the session start-time and moving destructive regions.
2015-02-20ensure that stub audio file sources are removed when we destroy a trackPaul Davis
2015-02-13correctly set track loop status when locating away from loop range (and ↵Paul Davis
later, when coming back to the loop) Conflicts: libs/ardour/ardour/session.h libs/ardour/session.cc libs/ardour/session_transport.cc
2015-01-27Don't try to dereference a NULL ptr (the function 'ARDOUR::IO::nth()' can ↵John Emmas
return an invalid ptr, so let's make sure we test for it) Note 1: Potentially we could have the same issue with 'AutomationLine::nth()' (although the current code seems okay) Note 2: This (specific) problem seems mostly to affect Mixbus3 when it tries to load an old (version2) session from Ardour2. Mixbus can mark certain IO ports as being 'unused'. While loading sessions, function 'ARDOUR::IO::ensure_ports_locked()' deletes any unused ports. But later, the function 'ARDOUR::IO::make_connections_2X()' was crashing while trying to connect those (now NULL) ports. This commit fixes that crash but there's some evidence that it might only have moved the problem elsewhere. The version2 sessions now open successfully - but an MSVC (Debug) build now crashes whilst closing them (the Release build however, is okay). Someone who's more familiar with the code than me should review the Mixbus3/Ardour2 loading procedure to make sure it's safe.
2015-01-23split apart read and write chunk size and offer platform-dependent sizes for ↵Paul Davis
reading. Write chunk size should remain unchanged from before.
2015-01-19use C locale, because POSIX locale is not supported on windows, and ↵Ben Loftis
operation is undefined. C works on all platforms
2014-12-18Don't assume compiler can avoid copy to const ref.David Robillard
2014-12-17Fix various MIDI locking issues.David Robillard
Attempt to make mistakes much less likely in the future by statically requiring caller to pass scoped locks where necessary.
2014-12-10Use DEBUG_THREAD_SELF when using DEBUG_TRACE with pthread IDsJohn Emmas
(supports both normal pthreads usage and PTW32)
2014-12-09more DEBUG::Butler output, formatting corrections, and a warning on cerr if ↵Paul Davis
capture/playback buffers are too full/empty
2014-12-01Comments in various call-sites of coverage()Colin Fletcher
Comments in various call sites of Evoral::coverage() marking things I think are dubious (with XXX). Also straightened up the alignment of some ASCII art in libs/ardour/diskstream.cc
2014-10-10subtle changes to accomplish two goals (1) playhead should stop where the ↵Paul Davis
user pressed stopped (2) captured regions should end where the playhead ends
2014-07-09remove debug outputPaul Davis
2014-07-09fix crash initiated by never configuring track write sources when reloading ↵Paul Davis
a session, caused by earlier commits to avoid unnecessary write source resets
2014-07-09only reset AudioDiskstream write sources if the I/O configuration changed. ↵Paul Davis
Do not do this for connection changes etc.
2014-06-26allow to set custom file name for each diststreamRobin Gareus
2014-06-10fix crash recovery: add new constructors to SndFileSource, AudioFileSource, ↵Paul Davis
add a new SourceFactory method and finally tweak AudioDiskstream::use_pending_capture_data() to create both the required whole-file and the in-playlist regions
2014-04-10redesign technique for naming/creating regions for MIDI clone (or other ↵Paul Davis
non-capture driven MIDI region creation operations). See comments in Session::new_midi_source_name() for details.
2014-01-10finished merge of cairocanvas with windows and windows+cc branchesPaul Davis
2013-12-02Replace non-portable printf format specifierTim Mayberry
This caused Diskstream state to be restored incorrectly
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-09-05'libs/ardour' - Revert 'std::llabs' to 'llabs' until we find a ↵John Emmas
platform-neutral solution (MOTE - 'llabs' and '::llabs' are being used successfully in other parts of Ardour)
2013-09-03Merge branch 'master' into audioenginePaul Davis
2013-09-03Merge branch 'master' into windowsPaul Davis
2013-09-02add std:: to clarify use of llabs on OS XPaul Davis
2013-08-24fix merge conflicts from masterPaul Davis
2013-08-05fix conflicts after merge with masterPaul Davis
2013-08-03advance track's play-position even if processing is lockedRobin Gareus
fixes * http://tracker.ardour.org/view.php?id=5628 * http://tracker.ardour.org/view.php?id=5561
2013-07-24part-way through getting the audioengine changes to compilePaul Davis
2013-07-11Remove non-portable and unnused header includesPaul Davis
2013-07-11Revert "Remove non-portable and unnused header includes"Paul Davis
This reverts commit 7ef79d3f4b02e3d2e71d6888fbedd9b3f9c325c7.
2013-07-11Remove non-portable and unnused header includesPaul Davis
2013-03-30fix up some confusion with filesources' _origin and _file_is_new members. if ↵Paul Davis
_origin is set, it means that the file is "external" to the session (aka "embedded") and for some purposes this is more significant than _file_is_new. rename SourceFactory::createReadable() to ::createExternal() to more clearly indicate its purpose; remove never-supplied "origin" argument from SourceFactor::createWritable(). Fixes problems caused by 864ce8f0
2013-03-27Squashed commit of the following:Paul Davis
commit fdbae82077db53add90df7448a06869dac89acc6 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 21:45:28 2013 -0400 mammoth changes in basic signal flow, total redesign of MIDI channel filtering and more. commit 59343a8283698e02bc0f622313b29e98f449e4c8 Author: Paul Davis <paul@linuxaudiosystems.com> Date: Wed Mar 27 01:58:53 2013 -0400 initial working version after changes to MIDI channel filtering. may affect metering input too. testing not yet finished this commit merges many deep changes in ardour's internal architecture, combined with a total redesign of how MIDI channel filtering works. data in a track used to flow from JACK port buffers to diskstream's ringbuffers and was then copied from the ringbuffers into a BufferSet for use during Route::process_output_buffers(). The butler thread would handle the movement of data between the ringbuffers and disk. with this commit, data now flows from JACK port buffers into the BufferSet used for Route processing, and is copied from the BufferSet into the diskstream's ringbuffers (the butler thread continues to handle interactions with disk as usual). this change allowed a dramatic consolidation of code and simplification of most aspects of Track/Route::roll() and Track/Route::no_roll(). in particular, see Route::fill_buffers_with_input() which now concisely describes how we move data from JACK port buffers into the BufferSet for all Route types (including Tracks). this work was initially motivated by changing MIDI channel filtering so that we can process capture and playback independently. there is now a very clean pathway for this - see MidiTrack::roll() (NOTE: This needs implementing in the no-roll case too - a TODO item). the channel selector for MIDI tracks has been moved out of the track header and is now accessible via the context menu. more work is likely here, to make it (more) obvious to the user when filtering is going on.
2012-12-23fix buffer overflow of wrap_buffer (may fix #5221)Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13715 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-23debug issue #5221 -- possible mem corruptionRobin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13714 d708f5d6-7413-0410-9779-e7cbd77b26cf