Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 01 Aug 2021 19:05:12 +0000
From:      bugzilla-noreply@freebsd.org
To:        multimedia@FreeBSD.org
Subject:   [Bug 251125] audio/jack: update to jack2 or add new port audio/jack2
Message-ID:  <bug-251125-12827-D2jI8anIaX@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-251125-12827@https.bugs.freebsd.org/bugzilla/>
References:  <bug-251125-12827@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D251125

Florian Walpen <dev@submerge.ch> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #220087|0                           |1
        is obsolete|                            |
 Attachment #220234|0                           |1
        is obsolete|                            |
 Attachment #220321|0                           |1
        is obsolete|                            |

--- Comment #83 from Florian Walpen <dev@submerge.ch> ---
Created attachment 226860
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D226860&action=
=3Dedit
New jack2 OSS driver from private github repo

Call for testing! And sorry for the long wait.

I have what I think is a reasonably working implementation here:
https://github.com/0EVSG/jack2/commits/feature/freebsd_oss

Please note that the patches attached apply to the ports repo and will fetch
sources from my private github repo above. If there is no intervention I wi=
ll
try to upstream my changes in a week or so. But I'd be glad to have some mo=
re
testing or opinions on it to back it up.

Implementation
--------------
The OSS buffer size (discussed above) is only changed if the current buffer
size is too small. I abandoned the idea of harmonizing the fragment sizes of
capture and playback channels, it caused trouble with some devices (namely
hda).

It uses poll() for wait and sync now, which is more in line with other jack
drivers like ALSA. This also allows to enable jack "async" mode, which means
plugins and other jack processes cannot stall the whole jack process anymor=
e.

My main concern was to get defined and stable latencies for recording. This
implementation tries hard to keep the latency within +/- 1ms for a given
configuration, despite over- and underruns, drifting, missing USB packets a=
nd
whatever I encountered during my tests.
But for that it may also be prone to overreacting in some cases.

Alas, I am using it successfully for recording since about 3 weeks ago, and
never had any issues with timing.

On portability: 16, 24 and 32 bit sample sizes are supported, but the
conversion functions are limited to native endianness. The lot of little-en=
dian
sound cards will therefore not work in bitperfect mode on big-endian platfo=
rms.

Migration
---------
Port audio/lash fails with missing -pthread, see patch. Apart from that the=
re
was no fallout AFAIK.

The high priority jackd system service is still available, although some
arguments changed and the man page is not up to date. Try "jackd --help" and
"jackd -d oss --help".

The more conventional way is to start jack via DBUS (needs service dbus).
Configuration has to be done through the jack_control utility, see
"jack_control help". Relevant settings include driver selection ("oss"), dr=
iver
parameters, and engine parameters ("sync", "verbose").  Unfortunately,
graphical tools like qjackctl or cadence do not produce working configurati=
ons,
but can at least be used to start jack_dbus.

I'm open to questions, suggestions and error reports (logs appreciated).

Thanks!

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-251125-12827-D2jI8anIaX>