Opened 7 years ago

Closed 7 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: Analyzed by developer:


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 Changed 7 years ago by reimar

-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 Changed 7 years ago by reimar

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

comment:3 Changed 7 years ago by tom_bogle@…

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 Changed 7 years ago by reimar

  • op_sys changed from Other to MinGW
  • Resolution set to fixed
  • Status changed from new to closed

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.