summaryrefslogtreecommitdiff
path: root/libs/ardour/disk_reader.cc
AgeCommit message (Collapse)Author
2018-07-31Fix mismatched delete/delete[]Robin Gareus
2018-07-09NO-OP: Rename disk-reader buffer for consistencyRobin Gareus
This is in preparation to replace the Ringbuffer and avoid over-using "buf" as variable (it's already used for vectors, as parameter name and Audiobuffers.
2018-07-09Prepare API for per disk-reader de-clickRobin Gareus
2018-07-09Separate ChannelInfo for disk reader and writerRobin Gareus
This allows to use different types for write and read buffers, in preparation for a dedicated reader-buffer.
2018-07-09Remove unused disk-reader vari-speedRobin Gareus
2018-07-09Remove global declick APIRobin Gareus
De-click will be per disk-reader, latency compensated and buffer-size independent. Cue-monitoring should not be affected by de-click.
2017-10-31Move Loop Location to ProcessorsRobin Gareus
The processors will becomes responsible to know about loop-positions and map latency-compensated start_sample, end_sample into the loop-range as needed.
2017-10-26remove unused variablePaul Davis
2017-10-26switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>Paul Davis
2017-10-26optimization for track with zero audio channels should not short-circuit ↵Paul Davis
MIDI disk reading
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-10-02use new CubicInterpolation APIPaul Davis
2017-10-02DiskReader should do nothing at all if there are no channelsPaul Davis
2017-10-02remove cruftPaul Davis
2017-10-01Fix MIDI rec-region displayRobin Gareus
gui_feed_buffer is used for DiskWriter -> GUI notifications. It was wrongly migrated from MidiDiskstream to DiskReader in 7fb6807
2017-09-30Make MIDI disk-reader a bit less buggy :)Robin Gareus
* use start/end frame * differentiate nframes and disk_samples_to_consume * add global Port::port_offset () when writing data. * add a note about b0rked vari-speed ..
2017-09-30MIDI debugging.Robin Gareus
2017-09-30Disk-reader don't silence buffers when not rollingRobin Gareus
Doing so may clear out-of-band data which is injected into the data-stream.
2017-09-29Ongoing work on latency compensationRobin Gareus
The general goal is to align transport-sample to be the audible frame and use that as "anchor" for all processing. transport_sample cannot become negative (00:00:00:00 is the first audible frame). Internally transport pre-rolls (read-ahead) before the transport starts to move. This allows inputs and disk to prefill the pipeline. When starting to roll, the session counts down a global "remaning preroll" counter, which is the worst-latency from in-to-out. Each route in turn will start processing at its own output-latency. Route::process_output_buffers() - which does the actual processing incl disk i/o - begins by offsetting the "current sample" by the route's process-latency and decrements the offset for each latent processor. At the end of the function the output will be aligned and match transport-sample - downstream-playback-latency (if any). PS. This commit is a first step only: transport looping & vari-speed have not yet been implemented/updated.
2017-09-29No more disk-reader roll-delayRobin Gareus
It was not working in sdio/6.0-pre anyway and with upcoming changes to latency compensation the concept of per disk[stream/reader] will go away.
2017-09-21fix clang compilation (include header ordering)Robin Gareus
"i18n.h" needs to be included last, after types have been defined or clang bails out: "call to function 'operator<<' is not visible in the template definition"
2017-09-19fix boolean logic for roll_delay vs. disk_samples_to_consumePaul Davis
2017-09-19do not advance DiskReader's idea of playback_sample while waiting for ↵Paul Davis
_roll_delay to expire
2017-09-19clearer catastrophic error message, rather than assert()Paul Davis
2017-09-19attempt to fix roll delay logic by moving it into DiskReader (the only place ↵Paul Davis
it matters)
2017-09-19Revert "remove unusued roll_delay member of DiskReader"Paul Davis
This reverts commit 92c2e06eb72950f91ca943a5219e2caeaeecda9f.
2017-09-19remove unusued roll_delay member of DiskReaderPaul Davis
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18fix logic error that prevent input monitoring during slave wait statesPaul Davis
2017-09-18don't attempt MIDI playback if there are no MIDI buffers provided for processingPaul Davis
2017-09-18remove debug outputPaul Davis
2017-09-18remove all code related to "silent roll" concept. some debug output addedPaul Davis
2017-09-18move disk_{writer,reader} into Route to allow for simple, sensible ↵Paul Davis
implementation of DiskIOPoint
2017-09-18use constPaul Davis
2017-09-18remove unused + commented linePaul Davis
2017-09-18subtle change to _need_butler logic to ensure correct result in mixed-type ↵Paul Davis
contexts
2017-09-18reinstate use of a MidiTrack's MIDI filter when reading from diskPaul Davis
2017-09-18move _file_frame from DiskIOProcessor into DiskReader (only place where it ↵Paul Davis
is needed); split into by-type array to deal with different rate of audio & MIDI i/o
2017-09-18tweaks to disk io point mechanismsPaul Davis
2017-09-18framework for silent-roll-while-slave-syncingPaul Davis
2017-09-18probable fix for out-of-sync issue across tracks after locatePaul Davis
2017-09-18when DiskReader checks to see if a locate is in progress, it must be atomic ↵Paul Davis
with respect to all DiskReaders
2017-09-18change visible name of disk i/o processorsPaul Davis
2017-09-18comment out debug trace outputPaul Davis
2017-09-18do not advance pointer; avoids illegal over-read during mix_buffers_no_gain()Paul Davis
2017-09-18locating no longer interrupts process()Paul Davis
2017-09-18more DEBUG::Destruction messagesPaul Davis
2017-09-18fix inadvertent run of Interpolation object when transport speed is zero, ↵Paul Davis
leading to a single sample being written when nothing should be. Also, rename "outgoing" as "disk_signal" to be more clear.
2017-09-18rename a method to be more clear; remove an unused method from DiskReaderPaul Davis
2017-09-18cue monitoring for MIDIPaul Davis