lavcac3enc filter broken with ffmpeg 8.0.x - "unsupported conversion: spdif-ac3 -> floatp
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 37k
- Forks
- 3.5k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 22
Description
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
System
- OS: openSUSE Tumbleweed-Slowroll
- mpv: 0.41.0+git20260309.07c3ff3725 (from openSUSE repo)
- ffmpeg: 8.0.1 (libavcodec62, libswresample6) from Packman
- PipeWire: 1.5.85 and 1.6.1 (both tested, same result)
- GPU: NVIDIA RTX 2070 SUPER
- Audio: HDMI extractor (HDP-V104) via PipeWire sink alsa_output.pci-0000_09_00.1.hdmi-stereo-extra2
Problem
The lavcac3enc audio filter stopped working after upgrading ffmpeg to 8.0.1.
Error
Failed to parse codec profile.
[swresample] unsupported conversion: spdif-ac3 -> floatp
[swresample] libswresample failed to initialize.
Disabling filter lavcac3enc.00 because it has failed.
AO: [pipewire] 48000Hz stereo 2ch spdif-ac3
[ao/pipewire] Stream in error state, trying to reload...
[ao/pipewire] Error during playback: No such file or directory, no target node available
Reproduction
mpv --no-config
--audio-device=pipewire/alsa_output.pci-0000_09_00.1.hdmi-stereo-extra2
--audio-spdif=ac3,dts
--af=lavcac3enc
file.mkv
Workaround
Using ALSA directly (without PipeWire) works:
mpv --no-config
--ao=alsa
--audio-device=alsa/hdmi:CARD=NVidia,DEV=2
--audio-spdif=ac3,dts
file.mkv
But this requires stopping PipeWire which breaks the desktop environment.
Notes
- Works with ffmpeg 7.1.3 (libavcodec61)
- Broken with ffmpeg 8.0.1 (libavcodec62)
- The filter
lavcac3encexists in mpv --af=help output - PipeWire sink reports formats:
ac3-iec61937,dts-iec61937(notspdif-ac3) - mpv attempts
spdif-ac3format which PipeWire 1.6.x no longer accepts
Expected Behavior
AC3 bitstream passthrough via lavcac3enc to HDMI extractor (working with ffmpeg 7.x).
Actual Behavior
Failed to parse codec profile.
[swresample] unsupported conversion: spdif-ac3 -> floatp
[swresample] libswresample failed to initialize.
Disabling filter lavcac3enc.00 because it has failed.
AO: [pipewire] 48000Hz stereo 2ch spdif-ac3
[ao/pipewire] Stream in error state, trying to reload...
[ao/pipewire] Error during playback: No such file or directory, no target node available
Log File
xxx
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin at mpv's lavcac3enc audio-filter entry point and the PipeWire audio-output path, using the supplied reproduction command and comparing ffmpeg 7.1.3 with 8.0.1. Done means AC3 passthrough reaches the HDMI extractor through PipeWire without the unsupported conversion, filter initialization, or stream errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100