Date: Sun, 01 Aug 2021 19:05:12 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251125 Florian Walpen <email@example.com> 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 <firstname.lastname@example.org> --- Created attachment 226860 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=226860&action=edit 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 will try to upstream my changes in a week or so. But I'd be glad to have some more 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 anymore. 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 and 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-endian sound cards will therefore not work in bitperfect mode on big-endian platforms. Migration --------- Port audio/lash fails with missing -pthread, see patch. Apart from that there 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"), driver parameters, and engine parameters ("sync", "verbose"). Unfortunately, graphical tools like qjackctl or cadence do not produce working configurations, but can at least be used to start jack_dbus. I'm open to questions, suggestions and error reports (logs appreciated). Thanks! -- You are receiving this mail because: You are on the CC list for the bug.