• v0.9.0 f2d213aeb5

    v0.9.0 Stable

    builduser released this 2026-09-07 07:33:29 +02:00 | 2 commits to main since this release

    Fixes virtual camera resolutions not being detected or set correctly, and adds
    an MIT licence.

    Sources now report what size they send

    The resolution a source sends was never established. Nothing here decodes, so
    the only size available was whatever the device happened to be set to, which
    is whatever a consumer settled on when it attached: usually the module's
    default, rarely what the source sends.

    The size is now read from the codec configuration that begins every stream.
    That means walking the H.264 sequence parameter set, which is a bitstream of
    variable length fields that is not byte aligned, with a crop counted in chroma
    samples. Anything unrecognised is refused rather than guessed at, including
    the enhanced framing used by HEVC and AV1, because a wrong size is worse than
    no size.

    Tested against streams a real encoder produced at 1920x1080, 1280x720,
    854x480, 640x360, 320x180 and 1080x1920 portrait, across baseline, main and
    high profiles. Two of those sizes are not whole macroblocks and depend on the
    cropping arithmetic being right.

    What changes as a result

    • Device free — the camera sends the source's own size and the device
      follows it. This is the case that was broken.

    • Device held by OBS — its format cannot change, so it is still matched,
      but the message names both sizes and what is holding it:

      This source sends 1920x1080 but /dev/video10 is set to 640x480 by obs
      (pid 4821), which cannot change while it holds the device. The picture is
      being scaled to fit. To use the full size, remove the source in OBS, leave
      this publishing, and add it again.

    The size a source sends is also shown on the Sources page, where nothing
    reported it before.

    The reliable order is: assign the camera in StreamSink, confirm it is
    publishing, then add the Video Capture Device in OBS. Sources already in OBS
    need removing and adding once to pick up the correct format.

    Licence

    MIT, which the repository previously had none of.

    Downloads

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