Skip to main content
Topic: 24 bit WMA Lossless decoding broken in Windows 10 1809 (Read 18218 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

24 bit WMA Lossless decoding broken in Windows 10 1809

Hi all,

A fre:ac user recently told me that his 24 bit WMA Lossless files could not be converted with my software. Also, they would not play in any Windows player he tried. It was a big deal for him as he had his whole music collection in WMA Lossless and feared losing it.

I investigated and found that Windows 10 1809 breaks 24 bit WMA Lossless decoding with the older Windows Media Format API. Many popular applications like fre:ac, foobar2000, Winamp and GoldWave use this API and are now unable to decode or play 24 bit WMA Lossless files. This potentially affects lots of users.

It's easy to reproduce: Just take any audio file and convert it to 24 bit WMA Lossless with any program that supports it (e.g. fre:ac or GoldWave; you can use 16 bit source files for this test if you don't have any 24 bit material). Then try to play the file in one of the mentioned applications.

The newer Media Foundation API does not seem to be affected as programs like Windows Media Player or Groove still play these files just fine.

The bug was introduced with the 1809 feature update and is still present in the latest insider build 18329. I have reported it in the feature hub, but it did not get a lot of attention yet. Thus I hope to find some users and developers here who care about this and would like to help by voting and commenting on the bug in Windows 10 Feedback Hub. To vote or comment on the bug, search for Feedback Hub in the start menu, open it and then search for WMA there to bring up the ticket.

Edit: Here's the link to the ticket: https://aka.ms/AA432mg

Thanks for your attention and help!

Cheers,
Robert

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #1
Maybe he could use Windows 7 and convert his files to FLAC.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #2
Avoid using anything like Windows Media Audio / Video unless you enjoy losing access to your stuff at some point in the future.  Same goes for junk like Real Player (if anybody still uses that piece of garbage),

Either use a universally supported format (all devices support it kind of thing) or at the bare minimum something that's at least open source.

I suggest your friend converts all that WMA Lossless to FLAC.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #3
@tehabe, @Chibisteven: Sure he can use an older version of Windows or a different software to convert to FLAC (e.g. VLC is not affected as it is using ffmpeg to decode WMA Lossless), but that's not the point of my post.

The point is that this is a bug in Windows 10 and we need to get it to Microsoft's attention for it to be fixed.

Btw., we can add VirtualDJ, SoundForge and XMPlay to the list of affected applications as per another user's post in Feedback Hub. Curiously, I see only his ticket on one computer and only mine on another. Anyway, if you can see either ticket (or any other related) in Feedback Hub, it would be great if you could vote for it for this to get fixed quickly.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #4
I don't use Windows 10, so I can't. But it is likely due to the low usage of WMA in general. I really recommend converting to FLAC instead of fighting with WMA Lossless.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #5
@tehabe, @Chibisteven: Sure he can use an older version of Windows or a different software to convert to FLAC (e.g. VLC is not affected as it is using ffmpeg to decode WMA Lossless), but that's not the point of my post.

The point is that this is a bug in Windows 10 and we need to get it to Microsoft's attention for it to be fixed.

Btw., we can add VirtualDJ, SoundForge and XMPlay to the list of affected applications as per another user's post in Feedback Hub. Curiously, I see only his ticket on one computer and only mine on another. Anyway, if you can see either ticket (or any other related) in Feedback Hub, it would be great if you could vote for it for this to get fixed quickly.

I run Windows 10 Pro 1809 x64 but I have most of the default bundled applications (excluding the store, weather, calculator) completely removed and I don't feel like screwing up my only computer to add that stuff back.  I don't have the feedback hub on this system or any that I have access to.

Use FFMPEG or VLC to convert to WAV than to FLAC or skip the step in the middle and convert straight to FLAC.  If need be you can use foobar2000 on an older version of Windows 10 or maybe Windows 7 or 8 on a different computer.

You should use something like Binary Comparator for foobar2000 to check and make sure everything that is converted is the same as the original.  Given the current situation you may have to revert to an older feature update of Windows 10 such as 1803 or use a computer with Windows 7 / 8 to do this.  Converting a large library can take a while but you will be glad that you did in the long run.  Also note the quote below:

I really recommend converting to FLAC instead of fighting with WMA Lossless.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #6
You could paste the link to your feedback entry here. The feedback hub separates what is shown based on language or location or something and for example I don't find anything with WMA search term.

 

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #7
You could paste the link to your feedback entry here. The feedback hub separates what is shown based on language or location or something and for example I don't find anything with WMA search term.
Unfortunately - as far as I know - the Feedback Hub is not available on the web yet. On https://insider.windows.com/en-us/fb/ I get This content is available only in the Feedback Hub app on Windows 10. So no link possible it seems.

The language/area separation with no way to get around indeed makes it really difficult to work on issues together...  ::)

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #8
There should be a share button in the top right corner which gives you a link. The link opens in Feedback Hub and allows circumventing the region boundaries.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #9
There should be a share button in the top right corner which gives you a link. The link opens in Feedback Hub and allows circumventing the region boundaries.
Ah great! Didn't see that. Here it is: https://aka.ms/AA432mg

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #10
The newer Media Foundation API does not seem to be affected as programs like Windows Media Player or Groove still play these files just fine.
I created a 24-bit WMA just now to check this.  My stuff uses MF to decode WMA to LPCM.  The decoded output of a 24-bit WMA-LL track is garbage in 1809.  In 1803 the WMA-LL output is as expected.  I don't think Groove or WMP uses MF for decoding WMA.  Could be secret sauce (MS doing MF calls differently), but more likely MS is not using MF for its own players.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #11
I created a 24-bit WMA just now to check this.  My stuff uses MF to decode WMA to LPCM.  The decoded output of a 24-bit WMA-LL track is garbage in 1809.  In 1803 the WMA-LL output is as expected.
That's strange. I built a Media Foundation based decoder for the company I work for and it handles 24 bit WMA-LL just fine while fre:ac fails to decode it using WMF on the same system.
My Media Foundation decoder uses the simple MFCreateSourceReaderFromByteStream API.


Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #13
That's strange....
 
I use:
MFCreateSourceResolver
:
CreateObjectFromByteStream
:
MFCreateSourceReaderFromMediaSource
:

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #14
I use:
MFCreateSourceReaderFromMediaSource
Just tried and this works for me:
Code: [Select]
IMFSourceResolver* resolver;
IMFMediaSource* source;
MF_OBJECT_TYPE objectType;
MFCreateSourceResolver (&resolver);
resolver->CreateObjectFromByteStream (byteStream, NULL, MF_RESOLUTION_MEDIASOURCE | MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE, NULL, &objectType, (::IUnknown**)&source);
MFCreateSourceReaderFromMediaSource (source, NULL, &reader);
It does not matter if I pass the filename as the second argument to CreateObjectFromByteStream or pass MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE. Both create a working media source.

My IMFByteStream does not implement the IMFAttributes interface, so I cannot quickly try setting the MF_BYTESTREAM_CONTENT_TYPE attribute instead.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #15
Well this is alarming. I have all my music stored in wma lossless and use wma pro for my portable versions. I do not use Windows 10 very often, but I plan to finish a new computer soon and it will have it. In fact, I'm building the computer for music processing and storage.
Processed audio in java and python.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #16
Well this is alarming. I have all my music stored in wma lossless and use wma pro for my portable versions. I do not use Windows 10 very often, but I plan to finish a new computer soon and it will have it. In fact, I'm building the computer for music processing and storage.
My understanding is that this only affects 24 bit WMA lossless, but I understand your concern about how MS supports their own formats.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #17
An example of why proprietary formats can be dangerous in the long term.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #18
It does not matter if I pass the filename as the second argument to CreateObjectFromByteStream or pass MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE. Both create a working media source.
I use the filename, and "MF_RESOLUTION_MEDIASOURCE | MF_RESOLUTION_READ".  I have not looked into this at all (yet).  Just to see if it was a 24-in-32 container problem (another 1809 change) I played a wma-pro 24-bit back fine.

Since I know my sole 24-bit WMA-LL doesn't work (in 1809, that is), if it's simple for you, how about uploading here a 24-bit WMA-LL that works for you.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #19
WMA is likely to be depreciated in Windows before long, but it won't really matter since it has all been reverse engineered and implemented in ffmpeg.  Hell, we have WMA/WMAPRO decoders running in Rockbox (using only fixed precision no less!).


Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #21
It is implemented in ffmpeg, partially. Last I checked a particular test file, it didn't support short (silent?) blocks on the end, so the file was slightly truncated.

Re: 24 bit WMA Lossless decoding broken in Windows 10 1809

Reply #22
[...] and implemented in ffmpeg.[...]
wmalossless NOT implemented in ffmpeg. or not already?

It is definitely implemented in ffmpeg.  It used to have problems with 24 bit files and would warn if you tried to decode them, but that was fixed.  I think it mostly works now, but I bet there are still problem cases out there. 



 
SimplePortal 1.0.0 RC1 © 2008-2019