Opened 14 months ago

Last modified 13 months ago

#8936 new defect

Incorrect decoding of low-bitrate WMA 10 pro

Reported by: Rollinnn Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: wmapro
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
When decoding attached wma file to wav with ffmpeg, resulting wav file has frequency cutoff at ~12 kHz. But when decoding on Windows with player foobar2000 (which in fact uses system decoder), resulting wav has frequencies up to 20 kHz. Resulting wav of correct decoding is also attached.
How to reproduce:

ffmpeg -i D:\Downloaded\SAMPLES\05ta_.wma D:\Downloaded\SAMPLES\05ta_.wav
ffmpeg version git-2020-08-31-4a11a6f Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.1 (GCC) 20200805
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 58.100 / 56. 58.100
  libavcodec     58.101.101 / 58.101.101
  libavformat    58. 51.101 / 58. 51.101
  libavdevice    58. 11.101 / 58. 11.101
  libavfilter     7. 87.100 /  7. 87.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, asf, from 'D:\Downloaded\SAMPLES\05ta_.wma':
  Metadata:
    WMFSDKNeeded    : 0.0.0.0000
    DeviceConformanceTemplate: M1
    WM/WMADRCPeakReference: 10061
    WM/WMADRCPeakTarget: 10061
    WM/WMADRCAverageReference: 2609
    WM/WMADRCAverageTarget: 2609
    WMFSDKVersion   : 12.0.7601.17514
    IsVBR           : 1
  Duration: 00:00:04.03, start: 0.000000, bitrate: 51 kb/s
    Stream #0:0(rus): Audio: wmapro (b[1][0][0] / 0x0162), 44100 Hz, stereo, fltp, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (wmapro (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'D:\Downloaded\SAMPLES\05ta_.wav':
  Metadata:
    WMFSDKNeeded    : 0.0.0.0000
    DeviceConformanceTemplate: M1
    WM/WMADRCPeakReference: 10061
    WM/WMADRCPeakTarget: 10061
    WM/WMADRCAverageReference: 2609
    WM/WMADRCAverageTarget: 2609
    WMFSDKVersion   : 12.0.7601.17514
    IsVBR           : 1
    ISFT            : Lavf58.51.101
    Stream #0:0(rus): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.101.101 pcm_s16le
size=     688kB time=00:00:04.08 bitrate=1379.3kbits/s speed= 179x
video:0kB audio:688kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.011071%

Attachments (2)

wma_10_pro_incorrect_decoding.wma (25.6 KB ) - added by Rollinnn 14 months ago.
wma_10_pro_correctly_decoded.wav (689.1 KB ) - added by Rollinnn 14 months ago.

Download all attachments as: .zip

Change History (4)

by Rollinnn, 14 months ago

by Rollinnn, 14 months ago

comment:1 by Carl Eugen Hoyos, 14 months ago

Component: undeterminedavcodec
Keywords: wmapro added

I compared the output with mplayer -ac wma9dmo and it appears more similar to FFmpeg's output so I suspect there is no issue.

comment:2 by Rollinnn, 13 months ago

I tried decoding with ffmpeg build from Plex server (https://www.plex.tv/media-server-downloads/?platform=windows#plex-app) which has Media Foundation decoders enabled with -c wmapro_mf and result has frequencies up to 20 kHz just like when decoded with foobar2000

Plex Transcoder.exe -c wmapro_mf -i D:\Downloaded\SAMPLES\wma_10_pro_incorrect_decoding.wma D:\Downloaded\SAMPLES\wma_10_pro_incorrect_decoding.wav
ffmpeg version 1.6-e774ef6f31-5 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0 - plex)
  configuration: --disable-static --enable-shared --disable-libx264 --disable-hwaccels --disable-protocol=concat --external-decoder=h264 --enable-debug --enable-muxers --enable-mf --fatal-warnings --disable-gmp --disable-avdevice --disable-bzlib --disable-sdl2 --disable-decoders --disable-devices --disable-encoders --disable-ffprobe --disable-ffplay --disable-doc --disable-iconv --disable-lzma --disable-schannel --disable-linux-perf --disable-mediacodec --enable-eae --disable-protocol='udp,udplite' --enable-libxml2 --arch=x86 --target-os=mingw32 --strip=i686-w64-mingw32-strip --cc=i686-w64-mingw32-gcc --pkg-config=/data/jenkins/conan_build/3957462660/conan/.conan/data/plexconantool/5-92/plex/stable/package/99cb7beab0cdb1bc79a044e3bd42148f6f45fb31/plex-pkg-config --pkg-config-flags=--static --enable-cuda-llvm --cross-prefix=i686-w64-mingw32- --enable-cross-compile --enable-w32threads --enable-libmfx --extra-ldflags=' -static-libgcc -m32 -L/data/jenkins/conan_build/3957462660/conan/.conan/data/opus/1.2.1-19/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libvorbis/1.3.5-23/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libxml2/2.9.8-24/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/ffnvcodec/10.0.26.1-c928e22-0/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libmfx/1.16-7adf2e4-18/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/x264/157-d4099dd-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/zvbi/0.2.35-31/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/rtmpdump/2.4-60/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libass/0.14.0-43/plex/stable/package/6d41e8604590e163ba6e45d1d3685067eabc0c4a/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/mp3lame/3.98.4-19/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/opencl-runtime-loader/0.0.1-e1bdb16-3/plex/stable/package/bd4b167120889561d0538bece267a99876f1da35/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libogg/1.3.2-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/gnutls/3.6.14-2/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/fribidi/0.19.7-22/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/harfbuzz/2.6.4-8/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/nettle/3.6-2/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libidn/2.0.5-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/freetype2/2.10.1-9/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/gmp/6.2.0-1/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/iconv/1.16-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/bzip2/1.0.6-23/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/libpng/1.6.37-9/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957462660/conan/.conan/data/zlib/1.2.11-6/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib' --extra-libs='-lwinmm -lwsock32 -lcrypt32' --extra-cflags='-m32 -O3 -s -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -Os -I/data/jenkins/conan_build/3957462660/conan/.conan/data/opus/1.2.1-19/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libvorbis/1.3.5-23/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libxml2/2.9.8-24/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libxml2/2.9.8-24/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include/libxml2 -I/data/jenkins/conan_build/3957462660/conan/.conan/data/ffnvcodec/10.0.26.1-c928e22-0/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libmfx/1.16-7adf2e4-18/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/x264/157-d4099dd-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/zvbi/0.2.35-31/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/rtmpdump/2.4-60/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libass/0.14.0-43/plex/stable/package/6d41e8604590e163ba6e45d1d3685067eabc0c4a/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/mp3lame/3.98.4-19/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libogg/1.3.2-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/gnutls/3.6.14-2/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/fribidi/0.19.7-22/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/harfbuzz/2.6.4-8/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/include/harfbuzz -I/data/jenkins/conan_build/3957462660/conan/.conan/data/opencl-headers/2020.03.13-9824efd-4/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/nettle/3.6-2/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libidn/2.0.5-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/freetype2/2.10.1-9/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/gmp/6.2.0-1/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/iconv/1.16-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/bzip2/1.0.6-23/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/libpng/1.6.37-9/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957462660/conan/.conan/data/zlib/1.2.11-6/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -DUSING_STATIC_LIBICONV -DLIBXML_STATIC -DNDEBUG' --enable-decoder=png --enable-decoder=apng --enable-decoder=bmp --enable-decoder=mjpeg --enable-decoder=thp --enable-decoder=gif --enable-decoder=dirac --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=huffyuv --enable-decoder=rawvideo --enable-decoder=zero12v --enable-decoder=ayuv --enable-decoder=r210 --enable-decoder=v210 --enable-decoder=v210x --enable-decoder=v308 --enable-decoder=v408 --enable-decoder=v410 --enable-decoder=y41p --enable-decoder=yuv4 --enable-decoder=ansi --enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=pcm_f32be --enable-decoder=pcm_f32le --enable-decoder=pcm_f64be --enable-decoder=pcm_f64le --enable-decoder=pcm_lxf --enable-decoder=pcm_s16be --enable-decoder=pcm_s16be_planar --enable-decoder=pcm_s16le --enable-decoder=pcm_s16le_planar --enable-decoder=pcm_s24be --enable-decoder=pcm_s24le --enable-decoder=pcm_s24le_planar --enable-decoder=pcm_s32be --enable-decoder=pcm_s32le --enable-decoder=pcm_s32le_planar --enable-decoder=pcm_s8 --enable-decoder=pcm_s8_planar --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=pcm_u24be --enable-decoder=pcm_u24le --enable-decoder=pcm_u32be --enable-decoder=pcm_u32le --enable-decoder=pcm_u8 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-decoder=ass --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=ccaption --enable-decoder=pgssub --enable-decoder=jacosub --enable-decoder=microdvd --enable-decoder=movtext --enable-decoder=mpl2 --enable-decoder=pjs --enable-decoder=realtext --enable-decoder=sami --enable-decoder=ssa --enable-decoder=stl --enable-decoder=subrip --enable-decoder=subviewer --enable-decoder=text --enable-decoder=vplayer --enable-decoder=webvtt --enable-decoder=xsub --enable-decoder=eac3_mf --enable-decoder=wmalossless_mf --enable-decoder=wmapro_mf --enable-decoder=wmav1_mf --enable-decoder=wmav2_mf --enable-decoder=wmavoice_mf --enable-decoder=eac3_eae --enable-decoder=truehd_eae --enable-decoder=mlp_eae --enable-encoder=flac --enable-encoder=alac --enable-encoder=libvorbis --enable-encoder=libopus --enable-encoder=mjpeg --enable-encoder=wrapped_avframe --enable-encoder=ass -
-enable-encoder=dvbsub --enable-encoder=dvdsub --enable-encoder=movtext --enable-encoder=ssa --enable-encoder=subrip --enable-encoder=text --enable-encoder=webvtt --enable-encoder=xsub --enable-encoder=pcm_f32be --enable-encoder=pcm_f32le --enable-encoder=pcm_f64be --enable-encoder=pcm_f64le --enable-encoder=pcm_s8 --enable-encoder=pcm_s8_planar --enable-encoder=pcm_s16be --enable-encoder=pcm_s16be_planar --enable-encoder=pcm_s16le --enable-encoder=pcm_s16le_planar --enable-encoder=pcm_s24be --enable-encoder=pcm_s24le --enable-encoder=pcm_s24le_planar --enable-encoder=pcm_s32be --enable-encoder=pcm_s32le --enable-encoder=pcm_s32le_planar --enable-encoder=pcm_u8 --enable-encoder=pcm_u16be --enable-encoder=pcm_u16le --enable-encoder=pcm_u24be --enable-encoder=pcm_u24le --enable-encoder=pcm_u32be --enable-encoder=pcm_u32le --enable-encoder=aac_mf --enable-encoder=h264_qsv --enable-encoder=h264_nvenc --enable-encoder=h264_mf --enable-encoder=hevc_mf --enable-encoder=eac3_eae --prefix=/data/jenkins/conan_build/3957462660/conan/.conan/data/ffmpeg/1.6-e774ef6f31-5/plex/stable/build/59c36b4ab222b24988462cdb742c6e91892a2a68/transcoder-install --enable-libzvbi --enable-gnutls --enable-libass --enable-librtmp --enable-libopus --enable-libvorbis
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.104 / 58. 27.104
  libavfilter     7. 49.100 /  7. 49.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, asf, from 'D:\Downloaded\SAMPLES\wma_10_pro_incorrect_decoding.wma':
  Metadata:
    WMFSDKNeeded    : 0.0.0.0000
    DeviceConformanceTemplate: M1
    WM/WMADRCPeakReference: 10061
    WM/WMADRCPeakTarget: 10061
    WM/WMADRCAverageReference: 2609
    WM/WMADRCAverageTarget: 2609
    WMFSDKVersion   : 12.0.7601.17514
    IsVBR           : 1
  Duration: 00:00:04.03, start: 0.000000, bitrate: 51 kb/s
    Stream #0:0(rus): Audio: wmapro (b[1][0][0] / 0x0162), 44100 Hz, stereo, 64 kb/s
[wmapro_mf @ 017bb840] MFT name: 'WMAudio Decoder MFT'
Stream mapping:
  Stream #0:0 -> #0:0 (wmapro (wmapro_mf) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'D:\Downloaded\SAMPLES\wma_10_pro_incorrect_decoding.wav':
  Metadata:
    WMFSDKNeeded    : 0.0.0.0000
    DeviceConformanceTemplate: M1
    WM/WMADRCPeakReference: 10061
    WM/WMADRCPeakTarget: 10061
    WM/WMADRCAverageReference: 2609
    WM/WMADRCAverageTarget: 2609
    WMFSDKVersion   : 12.0.7601.17514
    IsVBR           : 1
    ISFT            : Lavf58.27.104
    Stream #0:0(rus): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.52.100 pcm_s16le
size=     689kB time=00:00:03.99 bitrate=1411.5kbits/s speed= 127x
video:0kB audio:689kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.011054%
Note: See TracTickets for help on using tickets.