• v0.7.5 c67c8f1307

    v0.7.5 Stable

    builduser released this 2026-09-07 05:51:59 +02:00 | 8 commits to main since this release

    Fixes a crash when installing an update, and answers "what do I have to do"
    for the audio side, which the program previously could not.

    The update panel crashed while reporting a failure

    Installing an update that failed died with a nil pointer dereference, which
    hid whatever had actually gone wrong.

    The panel was handed its logging function before the log page it belongs to
    had been built. A method value on a nil pointer binds the nil receiver quite
    happily and only fails when it is finally called: here in a worker goroutine,
    reporting a failed install. The log page is now built first, and logging
    tolerates being called before one exists, because a failure being reported is
    not a good moment to crash. The same log was also written from worker
    goroutines and read on the main loop with nothing guarding it, and is now
    behind a mutex.

    Two install failures are also explained rather than reported bare, since one
    of them is what triggered the crash. An archive whose programs are not the
    ones installed here says what it contained and where it looked, and a
    directory that cannot be written to is detected before any binary is swapped
    rather than partway through.

    Audio devices are now diagnosed

    Creating an audio device failed with a message naming Debian packages on an
    Arch machine, and -check did not cover audio at all, so the program could
    not say what was missing.

    pactl comes from libpulse on Arch and pulseaudio-utils on Debian and
    Fedora. Suggestions now follow whichever package manager is present.

    -check reports both halves. A rig on virtual cameras needs both: the video
    loopback carries no sound, so a source with a camera and no audio device is
    silent.

    Video
      [ok  ]  platform                   Linux
      [ok  ]  ffmpeg                     /usr/bin/ffmpeg (n9.0.1)
      [FAIL]  v4l2loopback module        not loaded
    
    Audio
      [ok  ]  pactl                      /usr/bin/pactl
      [ok  ]  sound server               PulseAudio (on PipeWire 1.6.8) 15.0.0
      [FAIL]  audio devices              none yet
    

    Every failure carries the command to fix it.

    The likeliest audio failure is a machine with no desktop session, where no
    sound server is running at all. That is called out specifically, including the
    case where StreamSink was started outside a login session and so cannot see a
    per-user server:

    sudo pacman -S libpulse pipewire pipewire-pulse wireplumber
    systemctl --user enable --now pipewire pipewire-pulse wireplumber
    

    Unlike the video side this needs no root and no kernel module. Once a sound
    server is answering, Create audio devices in Settings works directly.

    Downloads

    File For
    streamsink-0.7.5-linux-amd64.tar.gz Linux server, client and agent
    streamsink-0.7.5-windows-agent-amd64.zip Windows agent, headless
    streamsink-0.7.5-windows-server-amd64.zip Windows server and client, with the GTK4 runtime
    streamsink-0.7.5-windows-decoder-amd64.zip Windows decoder, for the program view
    SHA256SUMS checksums, used by the updater

    There was no 0.7.4 release; it is folded into this one.

    Downloads