[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/54973: audio regression with multi channel content and stereo hardware
>Synopsis: audio regression with multi channel content and stereo hardware
>Arrival-Date: Mon Feb 17 02:10:00 +0000 2020
>Originator: Jared McNeill
NetBSD SEES 9.99.46 NetBSD 9.99.46 (GENERIC) #6: Sun Feb 16 21:45:07 AST 2020 jmcneill@SEES:/home/jmcneill/netbsd/cvs-src/sys/arch/amd64/compile/obj/GENERIC amd64
When playing back a video file with 5.1 surround track using mpv, I noticed that there was sound but the speech was inaudible.
mpv uses libossaudio to detect hardware capabilities. It attempts to set the desired number of channels (6) with SNDCTL_DSP_CHANNELS, which is emulated using AUDIO_SETINFO and AUDIO_GETBUFINFO. This returns the number of emulated channels to userland, which is 6.
Since the source channel count is greater than hardware capabilities, the stream passes through audio_track_chmix_shrink. This function discards all but the front left and right channels. Unfortunately for 5.1 content, the voice is often carried in the center channel, so speech ends up being inaudible.
If the kernel is going to claim to support more channels than supported by the hardware, we need to downmix so this data is not lost.
Use multimedia/mpv to playback a video with 5.1 surround audio on stereo audio hardware.
Main Index |
Thread Index |