Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jan 2026 13:57:32 +0000
From:      bugzilla-noreply@freebsd.org
To:        multimedia@FreeBSD.org
Subject:   [Bug 292403] multimedia/vlc: AFMT_FLOAT breaks OSS backend with virtual_oss
Message-ID:  <bug-292403-12827@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292403

            Bug ID: 292403
           Summary: multimedia/vlc: AFMT_FLOAT breaks OSS backend with
                    virtual_oss
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: multimedia@FreeBSD.org
          Reporter: walker.thompson@urz.uni-heidelberg.de
             Flags: maintainer-feedback?(multimedia@FreeBSD.org)
          Assignee: multimedia@FreeBSD.org

Created attachment 267080
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=267080&action=edit
Working patch for VLC with virtual_oss

When trying to play back audio files in VLC with the OSS backend, there is no
audio output to virtual_oss devices. I have tested the latest VLC port on 3
different systems with virtual_oss and noticed the same bug on all of them. If
virtual_oss is disabled, playback on physical sound devices works as usual.

The following errors occur in an infinite loop:

[0000000800c259e0] oss audio output error: cannot set audio format 0x10000000:
Invalid argument
[0000000800c259e0] main audio output error: module not functional
[000000081da6f3e0] main decoder error: failed to create audio output

On little-endian architectures, 0x10000000 corresponds to AFMT_FLOAT. Support
for AFMT_FLOAT was introduced in a recent commit
(https://cgit.freebsd.org/src/commit/?id=1728d26682c65cb878971f55b4e87e24d0050524).

EINVAL is being returned by an ioctl() on /dev/dsp with request
SNDCTL_DSP_SETFMT. In the following kdump extract, /dev/dsp is the device
created by virtual_oss:

 58222 vlc      CALL  openat(AT_FDCWD,0x8091f3bcf,0x100001<O_WRONLY|O_CLOEXEC>)
 58222 vlc      NAMI  "/dev/dsp"
 58222 vlc      RET   openat 58/0x3a
 58222 vlc      CALL  ioctl(0x3a,SNDCTL_DSP_SETFMT,0x7fffddbe5c98)
 58222 vlc      RET   ioctl -1 errno 22 Invalid argument

Frankly, I am not sure whether to view this as a VLC bug or a virtual_oss one;
if it is the latter, I lack the competency to investigate it fully. Either way,
I have not encountered any other applications that are affected (audio in
Firefox is fine, for instance).

If we limit the scope to VLC, two solutions have worked for me:

1) building with Pulse backend (not entirely satisfactory, as OSS is still
broken and Pulse is not a default option...);

2) the attached patch.

What is the best way to proceed?

-- 
You are receiving this mail because:
You are the assignee for the bug.

home | help

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