Notes:
The name length test still fails.
jack_client_open() will only allow 63 printable chars (unlike expected 64 == JACK_CLIENT_NAME_SIZE).
This difference isn't explained by the terminating NULL character. jack_client_name_size() takes care of that (returns JACK_CLIENT_NAME_SIZE + 1).
char arrays are initialized like arr[JACK_CLIENT_NAME_SIZE + 1] in many files und truncated like arr[JACK_CLIENT_NAME_SIZE].
Probable reason for 63: ':' is part of the client name and implicitely added later.
Name used by caller does not include ':' thus jack_client_open() will allow only JACK_CLIENT_NAME_SIZE - 1 printable chars.
This line in common/JackConstants.h gives a hint that ':' might be counted in for JACK_CLIENT_NAME_SIZE
#define REAL_JACK_PORT_NAME_SIZE JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE // full name like "client_name:short_port_name"
Currently many char arguments are described like
@param client_name of at most jack_client_name_size() characters
This can be confusing in two ways:
-jack_client_name_size() does include the NULL so it's one less 'payload' character
-if the returned size is used exactly as described for function jack_client_name_size() including NULL,
it won't work with jack_client_open() or jack_port_register() etc. because of another reduction (eventually for the ":").
!! This needs to be verified and documentation needs to be reviewed. !!
The newly added persons have contributed code to JACK in the past.
(mentioned in at least one file header)
tests/cpu.c: Copyright (C) 2005 Samuel TRACOL
linux/alsa/usx2y.c: Copyright (C) 2005 Karsten Wiese, Rui Nuno Capela
linux/alsa/ice1712.h: Copyright (C) 2000 by Jaroslav Kysela <perex@suse.cz>
example-clients/metro.c: Copyright (C) 2002 Anthony Van Groningen
dbus/controller_iface_transport.c: Copyright (C) 2008 Juuso Alasuutari
common/netjack.h: Copyright (C) 2003 Robert Ham <rah@bash.sh>
common/jack/ringbuffer.h: Copyright (C) 2003 Rohan Drape
common/jack/metadata.h: Copyright (C) 2011 David Robillard
common/JackMidiPort.cpp:Original JACK MIDI implementation Copyright (C) 2004 Ian Esten
linux/firewire/JackFFADODriver.cpp:Copyright (C) 2012 Jonathan Woithe
common/jack/statistics.h: Copyright (C) 2004 Rui Nuno Capela, Lee Revell
The authors list should be up-to-date now.
-Add new authors according to https://github.com/jackaudio/jack2/graphs/contributors
-Order alphabetically by FIRST NAME (this is simple for |sort)
Karl Lindén (karllinden)
Timo Wischer (twischer-adit)
Thomas Brand (7890)
Cédric Schieli (sdrik)
Markus Seeber (mseeber)
Alba Mendez (jmendeth)
David Runge (dvzrv)
Olivier Humbert (trebmuh)
Yasuhiro Fujii (y-fujii)
Gaël Portay (gportay)
James P. Thomas (jamespthomas)
Andreas Müller (schnitzeltony)
Holger Dehnhardt (dehnhardt)
Rui Nuno Capela (rncbc)
Michał Szymański (smiszym)
Francis Pinteric (fjapinteric)
Bruno Vernay (BrunoVernay)
Hunter L. Allen (allenh1)
Edward Betts (EdwardBetts)
Thomas Petazzoni (tpetazzoni)
James Cowgill (jcowgill)
Samuel Martin (tSed)
Bernhard M. Wiedemann (bmwiedemann)
Jacek Konieczny (Jajcus)
Andrew Kelley (andrewrk)
Maks Naumov (maksqwe)
Julien Acroute (Vampouille)
Youri Westerman (4c0n)
Olaf Hering (olafhering)
Ricardo Crudo (ricardocrudo)
Maxim Grishin (Igevorse)
Valentin David (valentindavid)
Joshua Moyerman (jmoyerman)
Arnaud Rebillout (elboulangero)
Alexander Graf (agraf)
Eliot Blennerhassett (eliotb)
Deven Lahoti (dlahoti)
Not added (need more info) github handles
fps
mojofunk
e9925248
farwayer
l1n
stratakis
m-grabner
bkuhls
escitalopram
The FreeBoB project was renamed to FFADO in 2007.
All users should use the FFADO backend by now (2019).
Backend name to be removed: "freebob"
Alternative backend to use: "firewire"
Please check the jackd manpage for details about "firewire" backend.
This commit is part of legacy cleanup.
closes issue #365.
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Due to inlining and enabled optimization the compiler will not create
machine instructions for the if-clauses and left shift for
sample_move_dS_s32s() and sample_move_dS_s32().
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Due to the optimization of the compiler this commit does not introduce any
differences in the machine instructions.
Tested with GCC version 6.2.0 on ARM64 and x86_64.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
ALSA expects right-aligned samples (0x00******) as mentioned in the
source code for SND_PCM_FORMAT_S24_LE:
Signed 24 bit Little Endian using low three bytes in 32-bit word
See http://git.alsa-project.org/?p=alsa-
lib.git;a=blob;f=include/pcm.h;h=5b0782315585de1d5ab82c9f2036b62c168f5a48;hb=HEAD#l140
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
ALSA expects right-aligned samples (0x00******) as mentioned in the
source code for SND_PCM_FORMAT_S24_LE:
Signed 24 bit Little Endian using low three bytes in 32-bit word
See http://git.alsa-project.org/?p=alsa-
lib.git;a=blob;f=include/pcm.h;h=5b0782315585de1d5ab82c9f2036b62c168f5a48;hb=HEAD#l140
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
GCC defines __ARM_NEON__ for asimd on ARMv7 and __ARM_NEON for simd on
ARMv8. Therefore also check for __ARM_NEON.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
When building with MXE, the macro expansion of PRIu64 fails:
../common/JackAPI.cpp: In function 'int jack_uuid_parse(const char*, jack_uuid_t*)':
../common/JackAPI.cpp:2119:24: error: expected ')' before 'PRIu64'
if (sscanf (b, "%" PRIu64, u) == 1) {
^
../common/JackAPI.cpp:2119:33: warning: spurious trailing '%' in format [-Wformat=]
if (sscanf (b, "%" PRIu64, u) == 1) {
^
../common/JackAPI.cpp:2119:33: warning: too many arguments for format [-Wformat-extra-args]
../common/JackAPI.cpp: In function 'void jack_uuid_unparse(jack_uuid_t, char*)':
../common/JackAPI.cpp:2134:45: error: expected ')' before 'PRIu64'
snprintf (b, JACK_UUID_STRING_SIZE, "%" PRIu64, u);
^
../common/JackAPI.cpp:2134:54: warning: spurious trailing '%' in format [-Wformat=]
snprintf (b, JACK_UUID_STRING_SIZE, "%" PRIu64, u);
^
../common/JackAPI.cpp:2134:54: warning: too many arguments for format [-Wformat-extra-args]
This could be resolved by adding those two lines:
#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
References:
https://stackoverflow.com/questions/14535556/why-doesnt-priu64-work-in-this-codehttps://stackoverflow.com/questions/8132399/how-to-printf-uint64-t-fails-with-spurious-trailing-in-format
Without being specified, we have c++98 on gcc4
and c++11 on newer gccs.
Eventually c++14 will be the default.
Better to stick with a specific standard, thus being predictable,
than trying to write the code in a way that builds with all of them.
Signed-off-by: falkTX <falktx@gmail.com>
* .ci/install-deps.sh: Install script for dependencies.
* .travis.yml: Adding support for gcc 8,7,6,default and xcode 8.3,9.2,default.
* .ci/install-deps.sh: Addin libsystemd-dev, opus and portaudio-dev.
* .travis.yml: Removing install script covered package installations. Adding branch whitelist for all branches.
* .ci/install-deps.sh: Adding executable bit.
* ci/install-deps.sh: Moving to non-hidden directory to make execution less painful.
* .travis.yml: Properly moving install script to hiddend directory.
* .ci/install-deps.sh: Changing to trusty names for libraries and development packages.
* .ci/install-deps.sh: Adding systemd, dbus and eigen3.
* .ci/install-deps.sh: Adding libsystemd0,libopus-dev, libportaudio2.
* .ci/install-deps.sh: Installing random systemd packages in the hopes they are the right ones... fuck yeah, ubuntu packaging hell.
* .travis.yml: Setting build and install operations to verbose.
* .ci/install-deps.sh: Install script for dependencies.
* .travis.yml: Adding support for gcc 8,7,6,default and xcode 8.3,9.2,default.
* .ci/install-deps.sh: Addin libsystemd-dev, opus and portaudio-dev.
* .travis.yml: Removing install script covered package installations. Adding branch whitelist for all branches.
* .ci/install-deps.sh: Adding executable bit.
* ci/install-deps.sh: Moving to non-hidden directory to make execution less painful.
* .travis.yml: Properly moving install script to hiddend directory.
* .ci/install-deps.sh: Changing to trusty names for libraries and development packages.
* .ci/install-deps.sh: Adding systemd, dbus and eigen3.
* .ci/install-deps.sh: Adding libsystemd0,libopus-dev, libportaudio2.
* .ci/install-deps.sh: Installing random systemd packages in the hopes they are the right ones... fuck yeah, ubuntu packaging hell.
* .travis.yml: Setting build and install operations to verbose.
* .ci/install-deps.sh: Adding berkeley db.
* .travis.yml: Using default prefix on Linux (installing to /usr fails on travis - probably already installed).
* .travis.yml: Adding back /usr prefix and adding sudo to install call.
* README.rst: Adding initial version of a rst based README (only introduction and build information).
* README.rst: Adding link to website in title. Fixing resource type to be image for build status image.
Fixing sub bullet lists.
* README.rst: Fixing bullet lists according to rst spec.
* .travis.yml: Adding hacks for building with gcc on macOS.
* .travis.yml: Adding missing envs and compiler types to macOS builds.
* .ci/install-deps.sh: Fixing name of package portaudio19-dev.
* .travis.yml: Adding comments to default gcc/clang versions. Unifying call to brew update with removal of custom c++ executable.
* .ci/install-deps.sh: Adding install of gcc versions on macOS depending on CC variable.
* .travis.yml: Removing installation of gcc from matrix setup (the local c++ executable has to be removed first).
* .ci/install-deps.sh: Install the right gcc formula using brew.
* .travis.yml: Also set CXX to gcc6, if CC is set to it.
* .travis.yml: Removing disabling of options (they will be disabled automatically, if not available).
* .travis.yml: Looking at what we're deleting in /usr/local/include/c++.
* .travis.yml: Uninstalling oclint, if it's installed, as it conflicts with gcc.
* .travis.yml: Test what removal of include-fixed stdio.h will do (otherwise there's a broken include of a _stdio.h).
* .travis.yml: Creating one-liner for header removal, adding ; to configure.
* .travis.yml: Fixing indent. Adding ; for one-liner.
* .travis.yml: Moving to xcode9.2 image for testing, as the stdio.h issue seems xcode related (probably a bug with 9.4). Removing header removal.
* .travis.yml: Adding -flax-vector-conversions to CXXFLAGS to fix vector conversion problems.
* .travis.yml: Trying xcode8.3 with the build in the hopes that CoreAudio will behave more nicely.
* .travis.yml: Moving to clang for all OSX based builds for now, as brew installed gcc proves to be very complicated.
* .travis.yml: Removing support for Xcode 7.3. That stuff is too old.
* [metadata] Metadata properties implementation.
* [metadata] Fixed for shared server metadata-base accessor; alsofixed coding/naming style.
* [metadata] Fixed a tab for space.
* [metadata] Use of Berkeley DB is now truly optional on configure time.
* [metadata] Fixed tabs for spaces, again.
* [metadata] Fixed for shared metadata-base initialization and external clients.
* [metadata] Blind-fix for windows codebase.
* [metadata] Metadata API moved into client-side library only.
* [metadata] Fixed jack_port_uuid() stubbiness, now returning a proper UUID from port index.
* [metadata] Uniform method names.
* [metadata] Fixed PropertyChangeNotify through server async call.
This adds missing includes for alloca. The man page of alloca(3) states
that alloca.h should be #include'd to use alloca.
Also work around missing alloca.h header on Windows by adding a
compatibility module.
Closes: #197
This commit introduces the skeleton needed to implement reusable
operating system compatibility modules. This skeleton can then be
extended with the actual compatibility modules that work around
operating system specifics.
For example this will be used to be able to compile files that use
alloca on Windows. Also it can be used to implement replacements for
functions that are missing on some systems.