Opened 11 years ago

Closed 11 years ago

#2102 closed defect (fixed)

Playback of 24-bit WAV files not compatible with -ao win32 switch

Reported by: tom_bogle@… Owned by: reimar
Priority: normal Component: ao
Version: unspecified Severity: normal
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

When the -ao win32 switch is used (see bug 2101), playback of s24le WAV files sounds horrible (like a helicopter or machine gun). As a workaround, we can explicitly downsample using -format u16le and that sounds fine (albeit with the loss of quality going to the lower bit depth). This could be simply because -ao win32 simply can't handle 24-bit audio. However, it's interesting that even "-format s24be" or "-format u24le" cause it to detect the incompatibility with 24-bit audio, forcing it to default to s16le.
Seems that if the intended audio output is incapable of dealing with the input signal, it should *always* convert it.
Is there a way to use mplayer in Windows to get true 24-bit output? I tried all the available -ao options and all of them downsample.

Change History (4)

comment:1 by reimar, 11 years ago

-ao win32 does support 24 bit output, and it should work. However the way it sets it up does not 100% follow the documentation, so I suspect your audio driver might mess it up.
To test that theory, try playing something with more than 2 channels (use e.g. the channels or pan filter to create more channels), if it works with that it might be easy to work-around (though I'd still say the audio driver is being stupid).
If it doesn't help I don't know what the issue is.

comment:2 by reimar, 11 years ago

Sorry, forget that. The code for > 2 channels is disabled so you can't trigger it.

comment:3 by tom_bogle@…, 11 years ago

FWIW, we were able to reproduce this on (at least) two machines. One was definitely Win7 (32-bit), not sure about the other. Tried it on a WinXP machine here, and it worked fine. I know mplayer doesn't get as much of a workout in Windows (it's not even one of the OS choices in your Bugzilla!), so it could well be a driver incompatibility with -ao win32.
I did (previously) try an 8-channel 24-bit file, but could only hear the first two channels, so I guess that matches what you're saying about >2 being disabled.

comment:4 by reimar, 11 years ago

op_sys: OtherMinGW
Resolution: fixed
Status: newclosed

Windows is a choice, it just goes under the more specific name of the development environment, "MinGW". The reason is that it's also possible to compile for Windows using Cygwin, which gives quite different results.

Is there a way to use mplayer in Windows to get true 24-bit output? I tried all the available -ao options and all of them downsample.

-ao dsound also supports s24le for me.

Anyway, back to the original bug: Fixed in r35372, multi-channel output enabled in r35373.

Note: See TracTickets for help on using tickets.