Opened 8 years ago
Last modified 8 years ago
#6035 open defect
wmavoice: files decodes incorrectly
Reported by: | ami_stuff | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | git-master | Keywords: | wmavoice |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
4kbps 8khz and 5kbps 8khz modes decodes ok, the rest don't
https://trac.ffmpeg.org/raw-attachment/ticket/5426/wmavoice.7z
C:\>ffmpeg.exe -i C:\2_16kbps_16khz.wma out.wav ffmpeg version 3.2.git Copyright (c) 2000-2016 the FFmpeg developers built with gcc 4.6.2 (GCC) configuration: --disable-pthreads --enable-gpl libavutil 55. 43.100 / 55. 43.100 libavcodec 57. 68.100 / 57. 68.100 libavformat 57. 61.100 / 57. 61.100 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 68.100 / 6. 68.100 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 [wmavoice @ 0224d5c0] Warning: not compiled with thread support, using thread em ulation Input #0, asf, from 'C:\2_16kbps_16khz.wma': Metadata: WMFSDKNeeded : 0.0.0.0000 DeviceConformanceTemplate: S1 WMFSDKVersion : 11.0.5721.5275 IsVBR : 0 Duration: 00:00:37.98, start: 0.000000, bitrate: 17 kb/s Stream #0:0(pol): Audio: wmavoice ([10][0][0][0] / 0x000A), 16000 Hz, mono, flt, 16 kb/s [wmavoice @ 025ffa20] Warning: not compiled with thread support, using thread em ulation [pcm_s16le @ 02247e00] Warning: not compiled with thread support, using thread e mulation Output #0, wav, to 'out.wav': Metadata: WMFSDKNeeded : 0.0.0.0000 DeviceConformanceTemplate: S1 WMFSDKVersion : 11.0.5721.5275 IsVBR : 0 ISFT : Lavf57.61.100 Stream #0:0(pol): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s Metadata: encoder : Lavc57.68.100 pcm_s16le Stream mapping: Stream #0:0 -> #0:0 (wmavoice (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help Error while decoding stream #0:0: Function not implementeded=13.5x Last message repeated 3 times size= 1188kB time=00:00:37.97 bitrate= 256.2kbits/s speed=13.4x video:0kB audio:1187kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.006415%
Change History (2)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Component: | undetermined → avcodec |
---|---|
Keywords: | wmavoice added |
Reproduced by developer: | set |
Status: | new → open |
Version: | unspecified → git-master |
Note:
See TracTickets
for help on using tickets.
I looked at the 8khz 8kbps sample in a some detail. There is indeed a tonal problem. At the point where this starts, we're mostly coding fb_idx=11, so acb_type=hamming with 4 blocks/frame and 0 double pulses.
The source of the problem appears to start in the "excitation" array as written in line 1398 (call to ff_acelp_interpolatef()). What happens is that the values in that array build up to be insanely large over time, starting at the point where the tone starts going off (4.9s into the file). fcb_gain/acb_gain appear fine in that section of the code. The block pitch also seems sensible (low to mid-40s). Since the code simply interpolates excitation energy from history without any further input, it seems almost like a buildup of error through the filter history. I'll have to go through the original code to see whether it deals with this in some way or whether there's some slight problem in how the filter coefficients were generated or something like that...
So in short, I'm not 100% sure what's going on here.