The warning "samples per period does not match." never triggered.
Previously not being able to set the requested buffersize was a
fatal error.
This adds support for soundcards that only support msec.
e.g. recent HDA Intel via SOF (Sound Open Firmware)
* Unlinked panners now retain their state during copy/paste.
* Linked send panners can no longer override parent route panning
* Unlinked panner state is retained across link/unlink.
A call to `transcoder_exe (unused, unused)` passes the same
string reference for `ffmpeg` and `ffprobe`. If this happens
during the first call of this function, the path for the latter
is cached for both external tools.
This is a revision of the initial API 8ba7df9105, to
address issues with dynamica ports (fa791ae9cc).
* Group meter + scope/monitor per port (atomic access)
* Use shared pointer to allow access while ports change
* Use RCU to update port map
* Add/remove ports without clearing the map
* Add signal to notify GUI about Input Port changes
This allow to restore original engine port-names as set
by the backend. ALSA MIDI, CoreAudio, CoreMIDI and PortAudio
drivers can provide human readable physical port names for
some devices.
Various playlist operations can change region-properties
which results in Region::send_change being emitted while
the Playlist::RegionWriteLock is held.
This can result in recursive lock and/or deadlocks or crashes. e.g.
Insert time -> Playlist::shift -> Region::RegionPropertyChanged
-> EditorSummary::set_background_dirty -> Editor::session_gui_extents
-> Playlist::get_extent -> read-lock is taken after write-lock.
FoldbackStrip::update_send_box() GUI relies on ->fed_by() to
determine if a FB bus has a send from a route.
Under the hood this uses direct_feeds_according_to_reality()
and InternalSend::feeds(). When `allow_feedback` is set a send is
assumed to not directly feed a target (to allow loopbacks).
This mode must not be used for foldback sends.
Older compilers do not yet have fmaintrin.h. This fixes compile errors:
```
x86_functions_fma.cc:51:39: error: '_mm_fmadd_ss' was not declared in this scope
x86_functions_fma.cc:85:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:106:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:129:39: error: '_mm_fmadd_ss' was not declared in this scope
```