#10696: 44.1 16-bit monkey's audio .ape file decodes with blasts of noise
-------------------------------------+-------------------------------------
             Reporter:               |                    Owner:  (none)
  therentabrain                      |
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  unspecified  |               Resolution:
             Keywords:  monkey's     |               Blocked By:
  audio .ape                         |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Description changed by therentabrain:

Old description:

> Summary of the bug:
> Occasional .ape files created by Monkey's Audio 3.88 in Extra High mode
> are mangled when read by ffmpeg, as containing sections of white noise
> and/or silence.  Out of about 60 files in my tests, it happened 3 times.
>
> Files created by Monkey's Audio 3.99 did not seem to have this problem in
> my experience.  Still, the problem files test with no errors and can be
> successfully played in Winamp or decompressed by either version of MA
> without a problem.  Only ffmpeg fails and only under this specific
> situation.
>

> How to reproduce:
> {{{
> I:\>ffmpeg -i themagicwannago.ape themagicwannago.wav
> ffmpeg version 2023-11-22-git-0008e1c5d5-full_build-www.gyan.dev
> Copyright (c) 2000-2023 the FFmpeg developers
>   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
>   configuration: --enable-gpl --enable-version3 --enable-static --pkg-
> config=pkgconf --disable-w32threads --disable-autodetect --enable-
> fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
> --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
> librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
> libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
> libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
> libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
> libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
> libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
> libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
> libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
> libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-
> libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-
> libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-
> libbs2b --enable-libflite --enable-libmysofa --enable-librubberband
> --enable-libsoxr --enable-chromaprint
>   libavutil      58. 32.100 / 58. 32.100
>   libavcodec     60. 34.100 / 60. 34.100
>   libavformat    60. 17.100 / 60. 17.100
>   libavdevice    60.  4.100 / 60.  4.100
>   libavfilter     9. 13.100 /  9. 13.100
>   libswscale      7.  6.100 /  7.  6.100
>   libswresample   4. 13.100 /  4. 13.100
>   libpostproc    57.  4.100 / 57.  4.100
> Input #0, ape, from 'themagicwannago.ape':
>   Duration: 00:00:01.87, start: 0.000000, bitrate: 370 kb/s
>   Stream #0:0: Audio: ape (APE  / 0x20455041), 44100 Hz, stereo, s16p
> Stream mapping:
>   Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
> Press [q] to stop, [?] for help
> Output #0, wav, to 'themagicwannago.wav':
>   Metadata:
>     ISFT            : Lavf60.17.100
>   Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
> stereo, s16, 1411 kb/s
>     Metadata:
>       encoder         : Lavc60.34.100 pcm_s16le
> [out#0/wav @ 0000017fc96c8880] video:0kB audio:322kB subtitle:0kB other
> streams:0kB global headers:0kB muxing overhead: 0.023639%
> size=     322kB time=00:00:01.67 bitrate=1579.3kbits/s speed= 101x
> }}}
>
> File info from Monkey's Audio 3.88:
>
> {{{
> Format Info
> Version: 3.8
> Mode: Extra High
> Format Flags: 6
> Tag: None
> Audio Info
> Sample Rate: 44100
> Channels: 2
> Bits Per Sample: 16
> Peak Level: 22186
> Length / Size Info
> Length: 0:01
> File Size: 0.00 MB
> Compression: 26.22%
> }}}
>
> Monkey's Audio 3.99 reports no errors with it either, and both versions
> of MA have no problems decoding it correctly.  Then, the resulting WAV
> can then be turned into FLAC etc by ffmpeg just fine.
>
> ''I did notice that using MediaInfo v0.7.80, the number of tracks is
> hugely incorrect on these files.  The attached test file here shows as
> 2,500 tracks in MediaInfo, when it should say two.  In my limited
> experience, MediaInfo is capable of seeing the correct number of tracks
> in my other ape files.  That said, most of these v2.88 Extra High ape
> files that show a huge number of tracks in MediaInfo still converted
> perfectly back to 2ch WAV using ffmpeg.
> ''

New description:

 Summary of the bug:
 Occasional .ape files created by Monkey's Audio 3.88 in Extra High mode
 are mangled when read by ffmpeg, as containing sections of white noise
 and/or silence.  Out of about 60 files in my tests, it happened 3 times.

 Files created by Monkey's Audio 3.99 did not seem to have this problem in
 my experience.  Still, the problem files test with no errors and can be
 successfully played in Winamp or decompressed by either version of MA
 without a problem.  Only ffmpeg fails and only under this specific
 situation.


 How to reproduce:
 {{{
 I:\>ffmpeg -i themagicwannago.ape themagicwannago.wav
 ffmpeg version 2023-11-22-git-0008e1c5d5-full_build-www.gyan.dev Copyright
 (c) 2000-2023 the FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --pkg-
 config=pkgconf --disable-w32threads --disable-autodetect --enable-
 fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
 --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
 librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
 --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
 libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
 libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
 libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
 --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
 --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
 --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
 libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
 libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
 libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora
 --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-
 libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus
 --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b
 --enable-libflite --enable-libmysofa --enable-librubberband --enable-
 libsoxr --enable-chromaprint
   libavutil      58. 32.100 / 58. 32.100
   libavcodec     60. 34.100 / 60. 34.100
   libavformat    60. 17.100 / 60. 17.100
   libavdevice    60.  4.100 / 60.  4.100
   libavfilter     9. 13.100 /  9. 13.100
   libswscale      7.  6.100 /  7.  6.100
   libswresample   4. 13.100 /  4. 13.100
   libpostproc    57.  4.100 / 57.  4.100
 Input #0, ape, from 'themagicwannago.ape':
   Duration: 00:00:01.87, start: 0.000000, bitrate: 370 kb/s
   Stream #0:0: Audio: ape (APE  / 0x20455041), 44100 Hz, stereo, s16p
 Stream mapping:
   Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 Output #0, wav, to 'themagicwannago.wav':
   Metadata:
     ISFT            : Lavf60.17.100
   Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo,
 s16, 1411 kb/s
     Metadata:
       encoder         : Lavc60.34.100 pcm_s16le
 [out#0/wav @ 0000017fc96c8880] video:0kB audio:322kB subtitle:0kB other
 streams:0kB global headers:0kB muxing overhead: 0.023639%
 size=     322kB time=00:00:01.67 bitrate=1579.3kbits/s speed= 101x
 }}}

 File info from Monkey's Audio 3.88:

 {{{
 Format Info
 Version: 3.8
 Mode: Extra High
 Format Flags: 6
 Tag: None
 Audio Info
 Sample Rate: 44100
 Channels: 2
 Bits Per Sample: 16
 Peak Level: 22186
 Length / Size Info
 Length: 0:01
 File Size: 0.00 MB
 Compression: 26.22%
 }}}

 Monkey's Audio 3.99 reports no errors with it either, and both versions of
 MA have no problems decoding it correctly.  Then, the resulting WAV can
 then be turned into FLAC etc by ffmpeg just fine.

 ''I did notice that using MediaInfo (0.7.80), the number of tracks is
 hugely incorrect on these files.  The attached test file here shows as
 2,500 tracks in MediaInfo, when it should say two.  In my limited
 experience, MediaInfo is capable of seeing the correct number of tracks in
 my other ape files.  That said, most of these v2.88 Extra High ape files
 that show a huge number of tracks in MediaInfo still converted perfectly
 back to 2ch WAV using ffmpeg.
 ''

 I want to add, even if this was a bug in a 20 year old version of Monkey's
 Audio that has been fixed in newer versions, the risk here is using ffmpeg
 to convert precious old .ape files (in my case to .flacs), **not receiving
 any errors at all**, deleting the old files, and discovering at some point
 in the future that many of your dearly valued old archives are gone.

 Thanks!

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10696#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to