Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FreeBSD: Rewrite OSS backend, introduce sosso library #943

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Commits on Jan 26, 2024

  1. FreeBSD: Add synced OSS operation (sosso) headers.

    As a header-only C++ library, synced OSS operation (sosso) is used to
    clean up and separate the low-level handling of FreeBSD OSS devices
    in JACK. Features include:
    
     * Supports both read() / write() and mmap() IO operation.
     * Adaptive polling, better suited for low-latency requirements.
     * Internal double buffer to avoid troubles with OSS buffer resize.
     * Closely monitors progress and drift for each channel (+/- 1ms).
     * Facilitates drift correction through buffer offsets.
     * Depends on C++ standard library and system headers, nothing else.
    
    Although the sosso library is somewhat tailored to the needs of JACK,
    it was developed separately and will eventually be published and / or
    used in other projects. Therefore the headers follow a different
    formatting style and are more liberally licensed (ISC).
    0EVSG committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    2aa9d6b View commit details
    Browse the repository at this point in the history
  2. FreeBSD: Rewrite the OSS driver using sosso library.

    Make use of the sosso library to handle the low-level operation of
    OSS devices on FreeBSD. Further separate this part into the
    JackOSSChannel class, which should make it easier to reuse the code
    for JackOSSAdapter (not planned yet).
    JackOSSChannel features an additional assist thread which helps to
    process the OSS device when the driver thread is busy with the JACK
    dependency graph.
    Combined with the improvements of the sosso library, these changes
    bring JACK into the realm of real-time audio processing on FreeBSD,
    for select PCI sound cards (4-6ms round trip latency).
    0EVSG committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    b997bf5 View commit details
    Browse the repository at this point in the history