Opened 10 years ago
Last modified 10 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 , 10 years ago
comment:2 by , 10 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.