[FFmpeg-trac] #2095(avcodec:new): memleak in aac decoder
FFmpeg
trac at avcodec.org
Tue Jan 1 22:55:30 CET 2013
#2095: memleak in aac decoder
--------------------------------------+----------------------------------
Reporter: cehoyos | Owner:
Type: defect | Status: new
Priority: normal | Component: avcodec
Version: git-master | Keywords: aac leak
Blocked By: | Blocking:
Reproduced by developer: 0 | Analyzed by developer: 0
--------------------------------------+----------------------------------
I can reproduce a memleak in the AAC decoder with the sample and command
line from ticket #2088:
{{{
$ valgrind --leak-check=full ./ffmpeg_g -acodec aac -i dvdsub.vob -vn -f
null -
==7301== Memcheck, a memory error detector
==7301== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==7301== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==7301== Command: ffmpeg_g -acodec aac -i dvdsub.vob -vn -f null -
==7301==
ffmpeg version N-48385-g5ed5e90 Copyright (c) 2000-2013 the FFmpeg
developers
built on Jan 1 2013 21:30:44 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl --disable-indev=jack
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 85.100 / 54. 85.100
libavformat 54. 59.100 / 54. 59.100
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 30.102 / 3. 30.102
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[aac @ 0x69b9700] get_buffer() failed
[aac @ 0x69b9700] More than one AAC RDB per ADTS frame is not implemented.
Update your FFmpeg version to the newest one from Git. If the problem
still occurs, it means that your file has a feature which has not been
implemented.
[aac @ 0x69b9700] get_buffer() failed
Last message repeated 1 times
[aac @ 0x69b9700] channel element 2.0 is not allocated
[aac @ 0x69b9700] Number of bands (60) exceeds limit (40).
[aac @ 0x69b9700] channel element 2.15 is not allocated
[aac @ 0x69b9700] channel element 1.12 is not allocated
[aac @ 0x69b9700] channel element 3.14 is not allocated
[aac @ 0x69b9700] skip_data_stream_element: Input buffer exhausted before
END element found
[aac @ 0x69b9700] channel element 1.7 is not allocated
[aac @ 0x69b9700] channel element 2.1 is not allocated
[aac @ 0x69b9700] channel element 1.6 is not allocated
[aac @ 0x69b9700] channel element 1.3 is not allocated
[aac @ 0x69b9700] channel element 2.7 is not allocated
[aac @ 0x69b9700] channel element 3.9 is not allocated
[aac @ 0x69b9700] Reserved bit set.
Last message repeated 1 times
[aac @ 0x69b9700] Sample rate index in program config element does not
match the sample rate index configured by the container.
Last message repeated 1 times
[aac @ 0x69b9700] Not evaluating a further program_config_element as this
construct is dubious at best.
[aac @ 0x69b9700] Prediction is not allowed in AAC-LC.
[aac @ 0x69b9700] channel element 3.12 is not allocated
[aac @ 0x69b9700] channel element 2.6 is not allocated
[aac @ 0x69b9700] channel element 1.8 is not allocated
[mpeg @ 0x66c6e40] max_analyze_duration 5000000 reached at 5000000
Input #0, mpeg, from 'dvdsub.vob':
Duration: 00:00:07.97, start: 1556.319267, bitrate: 5263 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [SAR
64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x80]: Audio: aac, 24000 Hz, mono, fltp, 360 kb/s
Stream #0:2[0x20]: Subtitle: dvd_subtitle
Stream #0:3[0x22]: Subtitle: dvd_subtitle
Stream #0:4[0x24]: Subtitle: dvd_subtitle
Stream #0:5[0x25]: Subtitle: dvd_subtitle
Stream #0:6[0x26]: Subtitle: dvd_subtitle
Stream #0:7[0x28]: Subtitle: dvd_subtitle
Stream #0:8[0x29]: Subtitle: dvd_subtitle
Stream #0:9[0x21]: Subtitle: dvd_subtitle
Stream #0:10[0x23]: Subtitle: dvd_subtitle
Stream #0:11[0x27]: Subtitle: dvd_subtitle
Stream #0:12[0x2a]: Subtitle: dvd_subtitle
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf54.59.100
Stream #0:0: Audio: pcm_s16le, 24000 Hz, mono, s16, 384 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (aac -> pcm_s16le)
Press [q] to stop, [?] for help
[aac @ 0x69b9700] Sample rate index in program config element does not
match the sample rate index configured by the container.
[aac @ 0x69b9700] channel element 3.4 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] More than one AAC RDB per ADTS frame is not implemented.
Update your FFmpeg version to the newest one from Git. If the problem
still occurs, it means that your file has a feature which has not been
implemented.
[aac @ 0x69b9700] channel element 3.11 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Dependent coupling is not supported together with LTP
Last message repeated 11 times
Multiple frames in a packet from stream 1
[aac @ 0x69b9700] channel element 0.5 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.0 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Number of bands (60) exceeds limit (40).
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.15 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 1.12 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 3.14 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] skip_data_stream_element: Input buffer exhausted before
END element found
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 1.7 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.1 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] Number of bands (46) exceeds limit (44).
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.7 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 3.9 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Reserved bit set.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] Reserved bit set.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] Sample rate index in program config element does not
match the sample rate index configured by the container.
Last message repeated 1 times
[aac @ 0x69b9700] Not evaluating a further program_config_element as this
construct is dubious at best.
[aac @ 0x69b9700] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] channel element 3.12 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.6 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 1.8 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Dependent coupling is not supported together with LTP
Last message repeated 35 times
[aac @ 0x69b9700] channel element 2.14 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Dependent coupling is not supported together with LTP
Last message repeated 11 times
[aac @ 0x69b9700] Number of bands (61) exceeds limit (45).
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 3.2 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Reserved bit set.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] channel element 3.6 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Reserved bit set.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x69b9700] channel element 2.9 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.4 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 1.10 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 2.2 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 1.8 is not allocated
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Sample rate index in program config element does not
match the sample rate index configured by the container.
[aac @ 0x69b9700] Number of bands (4) exceeds limit (3).
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] Number of bands (43) exceeds limit (23).
Error while decoding stream #0:1: Operation not permitted
[aac @ 0x69b9700] channel element 3.13 is not allocated
Error while decoding stream #0:1: Operation not permitted
size=N/A time=00:00:04.07 bitrate=N/A
video:0kB audio:2kB subtitle:0 global headers:0kB muxing overhead
-101.074219%
==7301==
==7301== HEAP SUMMARY:
==7301== in use at exit: 4,008 bytes in 16 blocks
==7301== total heap usage: 4,168 allocs, 4,152 frees, 45,004,678 bytes
allocated
==7301==
==7301== 168 bytes in 1 blocks are definitely lost in loss record 1 of 4
==7301== at 0x4C290FE: memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0xBB8031: av_mallocz (mem.c:92)
==7301== by 0x99AB05: avcodec_fill_audio_frame (utils.c:322)
==7301== by 0x99AE64: avcodec_default_get_buffer (utils.c:360)
==7301== by 0xA84A7E: output_configure (aacdec.c:189)
==7301== by 0xA86F40: aac_decode_frame_int (aacdec.c:2548)
==7301== by 0xA884A2: aac_decode_frame (aacdec.c:2670)
==7301== by 0x99DD4E: avcodec_decode_audio4 (utils.c:1743)
==7301== by 0x595173: try_decode_frame (utils.c:2482)
==7301== by 0x59C755: avformat_find_stream_info (utils.c:2889)
==7301== by 0x454C80: open_input_file (ffmpeg_opt.c:794)
==7301==
==7301== 504 bytes in 3 blocks are definitely lost in loss record 2 of 4
==7301== at 0x4C290FE: memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0xBB8031: av_mallocz (mem.c:92)
==7301== by 0x99AB05: avcodec_fill_audio_frame (utils.c:322)
==7301== by 0x99AE64: avcodec_default_get_buffer (utils.c:360)
==7301== by 0xA85EF3: aac_decode_frame_int (aacdec.c:189)
==7301== by 0xA884A2: aac_decode_frame (aacdec.c:2670)
==7301== by 0x99DD4E: avcodec_decode_audio4 (utils.c:1743)
==7301== by 0x595173: try_decode_frame (utils.c:2482)
==7301== by 0x59C755: avformat_find_stream_info (utils.c:2889)
==7301== by 0x454C80: open_input_file (ffmpeg_opt.c:794)
==7301== by 0x45349F: open_files.isra.6 (ffmpeg_opt.c:2295)
==7301==
==7301== 1,128 bytes in 4 blocks are definitely lost in loss record 3 of 4
==7301== at 0x4C290FE: memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0xBB8031: av_mallocz (mem.c:92)
==7301== by 0x99AB05: avcodec_fill_audio_frame (utils.c:322)
==7301== by 0x99AE64: avcodec_default_get_buffer (utils.c:360)
==7301== by 0xA84A7E: output_configure (aacdec.c:189)
==7301== by 0xA86F40: aac_decode_frame_int (aacdec.c:2548)
==7301== by 0xA884A2: aac_decode_frame (aacdec.c:2670)
==7301== by 0x99DD4E: avcodec_decode_audio4 (utils.c:1743)
==7301== by 0x45F8EC: decode_audio (ffmpeg.c:1467)
==7301== by 0x4622B5: process_input (ffmpeg.c:1787)
==7301== by 0x45194F: main (ffmpeg.c:2980)
==7301==
==7301== 2,208 bytes in 8 blocks are definitely lost in loss record 4 of 4
==7301== at 0x4C290FE: memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind
/vgpreload_memcheck-amd64-linux.so)
==7301== by 0xBB8031: av_mallocz (mem.c:92)
==7301== by 0x99AB05: avcodec_fill_audio_frame (utils.c:322)
==7301== by 0x99AE64: avcodec_default_get_buffer (utils.c:360)
==7301== by 0xA85EF3: aac_decode_frame_int (aacdec.c:189)
==7301== by 0xA884A2: aac_decode_frame (aacdec.c:2670)
==7301== by 0x99DD4E: avcodec_decode_audio4 (utils.c:1743)
==7301== by 0x45F8EC: decode_audio (ffmpeg.c:1467)
==7301== by 0x4622B5: process_input (ffmpeg.c:1787)
==7301== by 0x45194F: main (ffmpeg.c:2980)
==7301==
==7301== LEAK SUMMARY:
==7301== definitely lost: 4,008 bytes in 16 blocks
==7301== indirectly lost: 0 bytes in 0 blocks
==7301== possibly lost: 0 bytes in 0 blocks
==7301== still reachable: 0 bytes in 0 blocks
==7301== suppressed: 0 bytes in 0 blocks
==7301==
==7301== For counts of detected and suppressed errors, rerun with: -v
==7301== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 2 from 2)
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2095>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list