summaryrefslogtreecommitdiff
path: root/libs/ardour/export_graph_builder.cc
AgeCommit message (Collapse)Author
2020-03-06Fix potential deadlock when exporting w/normalizingRobin Gareus
start_post_processing() may be called from the freewheeling callback, when starting to normalize.
2020-03-06Fix export alignment (#7916)Robin Gareus
Ardour's playback is aligned to master-out: "When the playback clock reads 01:00:00:00, the sample corresponding to 01:00:00:00 is audible at the speaker(s)" When exporting, and grabbing data from output ports, the signal is offset by the master-bus physical playback latency. This was compensated for, but lead to initial silence in the exported file. New approach is to start capturing export data during pre-roll, at the time when playback is written to the output buffers. To also shaves off a common offset to make this work with realtime export. Effectively this emulates processing with disconnected master-output port, while still keeping any latency of effects on the master-bus itself. Last but not least: jack updates latencies when freewheeling, (setting HW latency to zero). The callback arrives asynchronously some time after enabling freewheeling, but after Export Ports have been configured. Those callbacks are ignored.
2020-03-06Fix realtime export of multiple time-spansRobin Gareus
After exporting a time-span, the next time-span was started directly from the rt-callback. This had various issues. In particular with realtime export. Post-processing of a realtime-export enables freewheeling and is driven by freewheel callbacks. Freewheeling needs to be safely disabled for an upcoming realtime export. A similar issues existed when mixing realtime and non-realtime exports.
2019-09-18Re-order includesRobin Gareus
* external, system-wide first <> * next "pbd/*" ...
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-07Fix mp3 exportRobin Gareus
For reasons yet to be investigated, closing stderr when using a pipe into ffmpeg results in ffmpeg's stderr being written verbatim in the output file.
2019-03-05Use enum for exec stderr parameter (1/2)Robin Gareus
2019-02-26Disable ffmpeg/metadata by default, use "tag-metadata"Robin Gareus
2019-02-26Debug AudioGrapher::CmdPipeWriter<> commandRobin Gareus
2018-11-22Amend prev. commit, actually remove (1.0 - x) as was documentedRobin Gareus
2018-11-22Backwards compatible sndfile supportRobin Gareus
SFC_SET_COMPRESSION_LEVEL was only added in 2012 and only available in libsndfile 1.0.26 or later.
2018-11-21Include session-metadata in external/ffmpeg exportRobin Gareus
2018-11-20Implement vorbis encoder qualityRobin Gareus
This also prepares for codec-quality defaults, but ExportFormatSpecification does not yet set those for previously unset or new formats/presets.
2018-11-19Prepare export-format codec-quality settingRobin Gareus
2018-11-19Initial backend support for external export encoderRobin Gareus
This adds an experimental pipe to ffmpeg to encode mp3. Currently quality is hardcoded and various aspects remain to be implemented. However, it is sufficient for initial testing.
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
2016-12-07fix copy/paste typo in prev. commitRobin Gareus
2016-12-07Work around silence-trim config 0dBFS (7b1f97bf)Robin Gareus
2016-12-07Revert "Fix export silence threshold by using a constant value for now"Robin Gareus
This reverts commit 6784923a0587e9549f129faa7c75d784028d11a1.
2016-12-06Fix export silence threshold by using a constant value for nowTim Mayberry
All float values defined in the CONFIG_VARIABLE macro seem like they are cast to at some stage before writing (another issue that needs addressing). The default value for export-silence-threshold (-INFINITY) is converted to a value of 0 and as a result nothing is exported with trim enabled. Use the same fixed silence threshold as Mixbus until proper bounds checking and GUI is in place. Related: #6412
2016-07-18Normalize API rename part 2Robin Gareus
2016-07-18No-Op: rename Normalizer to IntermediateRobin Gareus
post-processing is no longer just Normalization. RealtimeExport does Encoding - faster than realtime - using the same infrastructure.
2016-07-16libardour support for timespan realtime exportRobin Gareus
2016-07-16Refactor TmpFile into an abstract base classRobin Gareus
This allows a TmpFile pointer to be either a Sync or Async (Threaded) writer. As result we must be able to handle both RT and non RT processing. Still, post-processing (normalization and encoding) should always happen faster than realtime (freewheeling). Since jack does not allow a client to change to freewheeling from within the process-callback, the async-writer disk-thread FileFlushed is used to initiate post-processing.
2016-07-15fix file-name reported to analyzer when stem-exportingRobin Gareus
2016-07-14refactoring to prepare for real-time exportRobin Gareus
* add a threaded TmpFile Writer * update API calls to that process_export_fw() can be used as process_function The idea is to re-use export infrastructure from normalization: export to a tmp-file and then encode target formats after that.
2016-05-25treat different normalization settings as different formatsRobin Gareus
2016-05-02Add loudness normalization to Export Format & GraphRobin Gareus
2016-04-21and now with proper closing bracket.Robin Gareus
2016-04-21take MB dithering into account when stripping silence on exportRobin Gareus
2016-03-11Configurable export-silence trim threshold (no GUI yet)Robin Gareus
2016-02-17Make sure that MSVC knows which version of 'ceil()' we wantJohn Emmas
(it doesn't have a version that understands 'framecnt_t')
2016-02-16chunk data before analysis, prefer 8KRobin Gareus
* consistent spectrum display for all reports (same binsize) * improved performance (power of two)
2016-02-16Fix Analysis duration for added silenceRobin Gareus
2016-02-15Add normalization gain factor to Export AnalysisRobin Gareus
2016-02-11only instantiate Analysis Processor if neededRobin Gareus
2016-02-10make post-export analysis optional (default to enabled)Robin Gareus
2016-02-10Post-export AnalysisRobin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-06-29no-op: indentation and whitespace fixesPaul Davis
2015-06-29[Summary] Added export cleanupGZharun
[Reviewed by] Andriy Mishyn
2014-11-18Avoid potential division by zero.David Robillard
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-08-04'libs/ardour' - Use 'std::vector' instead of dynamically sized arrays ↵John Emmas
(required to be buildable with MSVC)
2013-07-24part-way through getting the audioengine changes to compilePaul Davis
2013-03-17Handle mutiple export files with the same extension but different format.Sakari Bergen
If multiple filenames have the same extension, append the format name to the filename. This still requires a bit of extra logic to be optimal, as the format name will now be added in some situations where it is not needed. However, this is better than producing a broken file...
2013-01-16add copyright commentsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13856 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-30Create export temporary files in the export directorySakari Bergen
git-svn-id: svn://localhost/ardour2/branches/3.0@13371 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-24Inrease the export "chunk size" to speed it up over 10% at least in some ↵Sakari Bergen
situations git-svn-id: svn://localhost/ardour2/branches/3.0@12919 d708f5d6-7413-0410-9779-e7cbd77b26cf