Commit graph

115 commits

Author SHA1 Message Date
Robin Gareus
d126966952
Remove backend support for region-output export
This use-case is better served via stem-export.
2020-03-06 03:29:16 +01:00
Robin Gareus
751f9f9654
Fix export alignment (#7916)
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-06 01:49:48 +01:00
Robin Gareus
1851440863
Fix realtime export of multiple time-spans
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.
2020-03-06 01:49:44 +01:00
Robin Gareus
7f3f201833
Remove "i18n.h" include from header - fix builds
i18n alsways needs to be included last. This fixes an ambiguity of "_"

boost/function_types/detail/class_transform.hpp:23:26:
 error: ‘boost::mpl::placeholders::_’ has not been declared
 using mpl::placeholders::_;
2019-09-18 04:15:02 +02:00
Robin Gareus
a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus
71d4dd821c
Fix CD cue file Index positions -- #7780
According to the cdrdao man page, they should be defined as follows:
  INDEX MM:SS:FF
   Increments the index number at given position within the track.
   The first statement will increment from 1 to 2. The position is
   relative to the real track start, not counting an existing pre-gap.
2019-08-02 02:43:43 +02:00
Robin Gareus
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
Robin Gareus
0a329ffe73
NO-OP name change: CD-frames (not samples) 2019-04-08 14:44:22 +02:00
Robin Gareus
e1ffe7857f
Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
Robin Gareus
62cd539143 Fix false-positive duplicate format detection
Previously, stem-exports of more than 1 channel always included
the export-format, even if only one format was exported.
2018-10-02 21:28:49 +02:00
Robin Gareus
506863bf57 Add an API to reset export-handler configs.
config_map.erase() is only called in ExportHandler::finish_timespan().

When an export fails (throw) or is aborted, the export-handler's
config remains as is and the next export will run it again.

The export-handler is global, per session and
ExportHandler::add_export_config() only ever inserts or ignores insert.

This is in preparation to fix:
1) export to invalid path -> fail, error is thrown
2) correct path -> new config is inserted in the map
3) try to export again, first runs the not-completed export from (1)
  -> constant errors.
2018-07-25 18:19:19 +02:00
Robin Gareus
24ec0b974d Properly aligned export (Stem + Session)
Delay ports being exported by their playback latency.
2017-09-29 05:03:48 +02:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
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-18 12:39:17 -04:00
Robin Gareus
a1116ebd6f Oh boy! 2017-03-18 14:35:25 +01:00
Robin Gareus
0e65852901 Desperate hack to align master-bus on export.
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
2016-10-25 22:33:37 +02:00
Robin Gareus
3e32a00a52 fast region export -- don't call process() 2016-10-17 21:35:00 +02:00
Robin Gareus
8c944c08ea Normalize API rename part 2 2016-07-18 17:37:13 +02:00
Robin Gareus
b64dcac17e No-Op: rename Normalizer to Intermediate
post-processing is no longer just Normalization. RealtimeExport
does Encoding - faster than realtime - using the same infrastructure.
2016-07-18 17:37:13 +02:00
Robin Gareus
f8a6213454 libardour support for timespan realtime export 2016-07-16 02:14:18 +02:00
Robin Gareus
77687519b6 Refactor TmpFile into an abstract base class
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-16 02:14:13 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Paul Davis
02852c1980 fix CUE/TOC file creation with non ISO-8859-1 chars in source text (substitute underscores) 2016-07-13 16:39:26 -04:00
Robin Gareus
63ac1e7224 more meta-data placeholders for post-export command 2016-06-12 10:59:47 +02:00
Robin Gareus
04997080a4 add meta-data placeholders for post-export command
needs testing on windows with UTF8
2016-06-07 16:57:17 +02:00
Robin Gareus
e35d891616 the return of the Session::Exported signal 2016-03-19 13:13:34 +01:00
Robin Gareus
d131f882ee cleaner version of ac3da53 2016-03-12 10:11:06 +01:00
Robin Gareus
ac3da53f71 reset export status when not normalizing - fixes #6816 2016-03-12 03:02:31 +01:00
Adrian Knoth
6fa88273aa Spelling correction patch from Debian
Patch taken (and forward-ported to HEAD) from
<https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
2016-02-22 15:13:01 -05:00
Robin Gareus
108528b63d amend d814acb - SystemExec/Export debugging 2016-02-13 01:39:41 +01:00
Ben Loftis
d814acbb8f add some debugging capability for users of SystemExec. Needs review. 2016-02-12 18:22:12 -06:00
Robin Gareus
2c2002ee9c Prepare for optional timespan name during export. 2016-02-11 20:58:05 +01:00
Robin Gareus
c1642fead8 Post-export Analysis 2016-02-10 03:01:05 +01:00
Robin Gareus
1ec78d26ee Fix crash when aborting export.
The "Stop" button results in ExportHandlerPtr being destroyed.
This must not happen while it's in use -- in particular during
ExportHandler::start_timespan() and ExportHandler::finish_timespan()
2016-02-09 21:36:49 +01:00
Robin Gareus
c00a07e811 detailed export state, prepare resolution for #6512
(Post-processing step should announce itself during an export)
2016-02-09 13:15:54 +01:00
Robin Gareus
6ec38e9193 remove last ofstream 2015-10-13 09:55:53 +02:00
Robin Gareus
2397429e99 use quotes for in-tree pbd/glib wrapper include 2015-10-05 22:15:18 +02:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus
7ac691ec82 use pbd's gstdio compatibility wrapper 2015-09-17 14:37:57 +02:00
Robin Gareus
67c75c5a33 fix file metadata tagging on windows.
This allows TagLib to open the file and create a Tag object (see 2a0365c)
Tagging still fails later (taglib seek/SetFilePointer fails when writing)
2015-07-30 05:28:43 +02:00
Paul Davis
d1747b4137 no-op: indentation and whitespace fixes 2015-06-29 14:18:11 -04:00
GZharun
ae8c494c02 [Summary] Added export cleanup
[Reviewed by] Andriy Mishyn
2015-06-29 14:18:11 -04:00
Colin Fletcher
e5ea600ba0 Remove "" around CATALOG number in .cue file
cue2ddp definitely wants the bar code number *not* enclosed in quotes in
.cue files. Leave the quotes in .toc files: cdrdao definitely does need
these.
2015-06-21 14:48:33 +01:00
Colin Fletcher
ca9c7b169d Enclose bar code number in ""s in TOC & CUE export
cdrdao seems to want the CATALOG field to be enclosed in double-quotes.
2015-06-08 14:42:24 +01:00
Colin Fletcher
429355b0b3 Remove doubled quotes in TOC export PERFORMER field
toc_escape_text() already encloses its result in ""s, and if album_artist
is empty, the resulting PERFORMER """" line makes cdrdao upset. Just remove
the extra quotes.
2015-06-08 14:42:24 +01:00
Johannes Mueller
9ba98ae2d3 Remove filename extension for chapter mark file
The tool mp4chaps by the following command

$ mp4chaps -i test.mp4

looks for the file "test.chapters.txt" to read the chapter marks
from. So removing the original file name extension (e.g. wav or flac)
makes it slightly more convenient for the user.
2015-04-21 18:15:29 +02:00
Johannes Mueller
ca8ff95420 Put an Intro chapter at position 00:00:00.000
Players like vlc seem to stumble, if there es no chapter at the zero
position. As Ardour wouldn't let us put a track mark at the zero
position we can just use our header_func to put some kind of dummy intro
chapter. If a future version of Ardour allows track marks at zero, we
need to do a bit more work.
2015-04-21 18:15:29 +02:00
Johannes Mueller
acd1ee1989 Added support for exporting mp4 chapter marks
The mp4 file format supports chapter marks using the so called
mp4chaps format to enable chapter wise navigation in an mp4 file. The
format is like

hh:mm:ss.sss Chapter Title

This commit adds the ability to export those kind of chapter marks
along with TOC and CUE marks. The filename extension for the chapter
mark file is "chapters.txt". The format specification description is
"MP4ch".
2015-04-21 18:15:29 +02:00
Colin Fletcher
050c9c3f7d Add CD Metadata "PERFORMER" & "TITLE" fields to .toc & .cue export
Add "PERFORMER" to the exported .toc & .cue files based on the value of the
"album_artist" metadata field, and also use the value of the "album" field
for the TITLE if is set, falling back to the session or range name if it is
blank.
2015-03-28 18:34:03 +01:00
Colin Fletcher
8806e6ec9d Export EAN barcode number to 'CATALOG' field in .cue & .toc files 2015-03-28 18:34:02 +01:00