try again with the SCHED_RESET_ON_FORK flag before giving up. This fixes
PulseAudio's JACK modules not being granted real-time scheduling.
Signed-off-by: Juuso Alasuutari <juuso.alasuutari@gmail.com>
On ALSA poll time out, retry polling after executing the recovery.
Retry max limit is set with MAX_RETRY_COUNT.
Signed-off-by: Laxmi Devi <Laxmi.Devi@in.bosch.com>
Currently only poll_result is checked for < 0 before doing the further
processing, and not for timeout. After this movement the revents is checked
only if the poll doesn't timeout.
Signed-off-by: Laxmi Devi <Laxmi.Devi@in.bosch.com>
Currently even on XRUN, the xrun recovery is not executed as the
need_playback or need_capture flag is still true and so it goes
and waits on poll again.
Signed-off-by: Laxmi Devi <Laxmi.Devi@in.bosch.com>
* Set MIDI port pretty names on macOS
* Set MIDI port pretty names on Windows
* Set MIDI port pretty names on Linux/alsarawmidi
* Update alsarawmidi port naming to match CoreMIDI and WinMME
* Rename PortSetPrettyNameProperty to PortSetDeviceName
* Set hardware property to MIDI port names
* 'feature/systemd_user_units' of github:dvzrv/jack2:
systemd/example.conf: Fixing typo and adding further explanation and pointers to relevant documentation.
.travis.yml: Switching last build plan (old clang) to use xenial... oversaw that one.
.travis.yml: Switching to xenial for all other Linux based builds, too.
systemd/wscript: Making sure to strip trailing new lines from systemd user unit dir.
.ci/install-deps.sh: Install legacy development packages.
.ci/install-deps.sh: Testing xenial image (trusty is mega dead) to hopefully get a working systemd development package with headers to be picked up during configure.
* 'feature/systemd_user_units' of github:dvzrv/jack2:
wscript: Integrating systemd wscript in configure and build stages.
systemd/wscript: Adding wscript for systemd (detection of systemd user unit dir and installation of systemd user units and accompanying configuration.
systemd/jack@.service: Adding LimitMEMLOCK and adding (a commented) disabling of OOMScoreAdjust (which would disable OOM killer).
systemd/example.conf: Being a little more specific in the comments regarding the environment variables.
systemd/jack@.service: Switching Type to notify (we're not doing full dbus naming, when starting jackd.
systemd/*: Adding templated systemd user unit and configuration profile example.
On failure, currently the jack thread exits without notifying the jackd.
So jackd is just waiting for the signals, unaware of the failure.
With this implementation, on error threads can post an event to jackd
notifying it to to exit.
Signed-off-by: Laxmi Devi <Laxmi.Devi@in.bosch.com>
This would be required so that the polling concept can be used to wait
on signals as well as wait for events from the other threads.
Signed-off-by: Laxmi Devi <Laxmi.Devi@in.bosch.com>
aften v0.0.8 is latest released tarball.
https://downloads.sourceforge.net/aften/aften-0.0.8.tar.bz2
Travis builds for OSX use aften v0.0.8 (brew).
More recent aften code has introduced an additional parameter to aften_encode_frame().
The check in wscript compiles a small test program to see if the additional parameter is understood.
If additional parameter 'count' is available, set HAVE_AFTEN_NEW_API.
HAVE_AFTEN_NEW_API is used in common/JackAC3Encoder.cpp to call aften_encode_frame()
either with or without 'count' param.
Problem:
int res = aften_encode_frame(&fAftenContext, fAC3Buffer + SPDIF_HEADER_SIZE, fSampleBuffer);
Fails, because API is
AFTEN_API int aften_encode_frame(AftenContext *s, unsigned char *frame_buffer,const void *samples, int count)
The additional parameter 'count' was added to libaften function aften_encode_frame() here:
e1cbb66628 (diff-d4868af7d235a914aef2ec4f979fcb9fR87)
Solves https://github.com/jackaudio/jack2/issues/455