Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

AO/PipeWire: Multichannel output forces fixed 48kHz and breaks automatic sample rate switching

Closed
#18,654 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
c, linux

Research direction

Start by reading the PipeWire audio output implementation and its channel and sample rate configuration; the issue does not name specific files or tests. Reproduce with --ao=pipewire using a high sample rate stereo file, then compare stereo output with multichannel or upmixing enabled. Done means multichannel routing works while the output can switch to the file's sample rate.

Written by the indexing model from the issue text.

Description

os:linux
mpv Information

Other Information
- Linux version:
- Kernel Version:
- GPU Model:
- Mesa/GPU Driver Version:
- Window Manager and Version:
- Source of mpv:
- Latest known working version:
- Issue started after the following happened:
Reproduction Steps

mpv v0.41.0 Copyright © 2000-2025 mpv/MPlayer/mplayer2 projects
libplacebo version: v7.360.1
FFmpeg version: 8.0.1 (runtime 8.1.2)
FFmpeg library versions:
libavcodec 62.11.100 (runtime 62.28.102)
libavdevice 62.1.100 (runtime 62.3.102)
libavfilter 11.4.100 (runtime 11.14.102)
libavformat 62.3.100 (runtime 62.12.102)
libavutil 60.8.100 (runtime 60.26.102)
libswresample 6.1.100 (runtime 6.3.102)
libswscale 9.1.100 (runtime 9.5.102)

  • Linux version:Fedora 44
    Title:
    AO/PipeWire: Multichannel output / upmixing forces fixed 48kHz and breaks automatic sample rate switching (Bitperfect)
    Description:
    When using the native --ao=pipewire output module, there is a conflict between multichannel audio rendering and automatic sample rate switching.
    • Behavior 1: If a stereo file (e.g., 96kHz) is played via direct PipeWire output, the sample rate switches perfectly to 96kHz, but the audio is strictly limited to 2 channels (no automatic multichannel routing or duplication to other outputs of my Audient iD44).
    • Behavior 2: If multichannel audio or upmixing is triggered, PipeWire locks the entire audio interface down to a fixed 48kHz, completely ignoring the original Hi-Res sample rate of the file.
    Currently, the only way to achieve proper channel replication across all 8 outputs of the audio interface is by falling back to the legacy jack wrapper, which unfortunately completely sacrifices the on-the-fly sample rate switching capability.
    Expected behavior:
    The native PipeWire audio output module should support full multichannel streaming (including stereo duplication/upmixing to available hardware ports) while maintaining native, unrestricted sample rate switching (Bitperfect) under the hood.
Expected Behavior
Image
Actual Behavior
Image
Log File
Image
Sample Files

No response

I carefully read all instruction and confirm that I did the following:
  • I tested and confirmed that the issue exists with the latest release version or newer.
  • I provided all required information including system and mpv version.
  • I produced the log file with the exact same set of files, parameters, and conditions used in "Reproduction Steps", with the addition of --log-file=output.txt.
  • I produced the log file while the behaviors described in "Actual Behavior" were actively observed.
  • I attached the full, untruncated log file.
  • I attached the backtrace in the case of a crash.
Dominant language
C
Stars
37.5k
Forks
3.6k
Avg merge
2d 21h
Merged PRs (30d)
55

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mpv-player/mpv

All issues in mpv-player/mpv

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.