New submission from Carl Eugen Hoyos <[email protected]>:
Suggested by Reimar in issue 2126. Using the sample from issue 1951: $ valgrind --leak-check=full ffmpeg_g -i sample.mkv ==20147== Memcheck, a memory error detector ==20147== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==20147== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==20147== Command: ffmpeg_g -i sample.mkv ==20147== FFmpeg version SVN-r25283, Copyright (c) 2000-2010 the FFmpeg developers built on Oct 1 2010 15:38:39 with gcc 4.4.4 configuration: --cc='/usr/local/gcc-4.4.4/bin/gcc -m32' --disable-optimizations libavutil 50.32. 0 / 50.32. 0 libavcore 0. 9. 0 / 0. 9. 0 libavcodec 52.92. 0 / 52.92. 0 libavformat 52.79. 0 / 52.79. 0 libavdevice 52. 2. 2 / 52. 2. 2 libavfilter 1.48. 0 / 1.48. 0 libswscale 0.12. 0 / 0.12. 0 [matroska,webm @ 0x4fc4760] Too many streams issue1951/sample.mkv: Cannot allocate memory ==20147== ==20147== HEAP SUMMARY: ==20147== in use at exit: 300,497 bytes in 205 blocks ==20147== total heap usage: 383 allocs, 178 frees, 539,367 bytes allocated ==20147== ==20147== 18 bytes in 2 blocks are possibly lost in loss record 1 of 15 ==20147== at 0x4CA8E9E: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x4CA8EFB: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E46: av_malloc (mem.c:83) ==20147== by 0x8486F25: av_strdup (mem.c:170) ==20147== by 0x80A1ADC: av_metadata_set2 (metadata.c:74) ==20147== by 0x809B644: matroska_read_header (matroskadec.c:1406) ==20147== by 0x8101671: av_open_input_stream (utils.c:452) ==20147== by 0x8101B6A: av_open_input_file (utils.c:607) ==20147== by 0x8054D6E: opt_input_file (ffmpeg.c:3174) ==20147== by 0x805831E: parse_options (cmdutils.c:185) ==20147== by 0x8057B5B: main (ffmpeg.c:4327) ==20147== ==20147== 72 bytes in 1 blocks are possibly lost in loss record 4 of 15 ==20147== at 0x4CA9D82: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E7E: av_realloc (mem.c:135) ==20147== by 0x8098FC3: ebml_parse_elem (matroskadec.c:791) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== ==20147== 96 bytes in 4 blocks are possibly lost in loss record 6 of 15 ==20147== at 0x4CA8E9E: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x4CA8EFB: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E46: av_malloc (mem.c:83) ==20147== by 0x80989E8: ebml_read_ascii (matroskadec.c:638) ==20147== by 0x80990D6: ebml_parse_elem (matroskadec.c:807) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== ==20147== 640 (320 direct, 320 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 15 ==20147== at 0x4CA9D82: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E7E: av_realloc (mem.c:135) ==20147== by 0x8098FC3: ebml_parse_elem (matroskadec.c:791) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x809A333: matroska_execute_seekhead (matroskadec.c:1127) ==20147== by 0x809A68C: matroska_read_header (matroskadec.c:1204) ==20147== by 0x8101671: av_open_input_stream (utils.c:452) ==20147== ==20147== 780 (160 direct, 620 indirect) bytes in 20 blocks are definitely lost in loss record 12 of 15 ==20147== at 0x4CA8E9E: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x4CA8EFB: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E46: av_malloc (mem.c:83) ==20147== by 0x8486ECE: av_mallocz (mem.c:159) ==20147== by 0x80A19E7: av_metadata_set2 (metadata.c:55) ==20147== by 0x809B644: matroska_read_header (matroskadec.c:1406) ==20147== by 0x8101671: av_open_input_stream (utils.c:452) ==20147== by 0x8101B6A: av_open_input_file (utils.c:607) ==20147== by 0x8054D6E: opt_input_file (ffmpeg.c:3174) ==20147== by 0x805831E: parse_options (cmdutils.c:185) ==20147== by 0x8057B5B: main (ffmpeg.c:4327) ==20147== ==20147== 29,136 (6,208 direct, 22,928 indirect) bytes in 3 blocks are definitely lost in loss record 14 of 15 ==20147== at 0x4CA9D82: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E7E: av_realloc (mem.c:135) ==20147== by 0x8098FC3: ebml_parse_elem (matroskadec.c:791) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== ==20147== 269,755 bytes in 2 blocks are possibly lost in loss record 15 of 15 ==20147== at 0x4CA8E9E: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x4CA8EFB: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-x86-linux.so) ==20147== by 0x8486E46: av_malloc (mem.c:83) ==20147== by 0x8098A65: ebml_read_binary (matroskadec.c:656) ==20147== by 0x80990FA: ebml_parse_elem (matroskadec.c:808) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== by 0x8099170: ebml_parse_elem (matroskadec.c:813) ==20147== by 0x8098D8E: ebml_parse_id (matroskadec.c:739) ==20147== by 0x8098E2E: ebml_parse (matroskadec.c:752) ==20147== by 0x8098F4B: ebml_parse_nest (matroskadec.c:775) ==20147== ==20147== LEAK SUMMARY: ==20147== definitely lost: 6,688 bytes in 24 blocks ==20147== indirectly lost: 23,868 bytes in 172 blocks ==20147== possibly lost: 269,941 bytes in 9 blocks ==20147== still reachable: 0 bytes in 0 blocks ==20147== suppressed: 0 bytes in 0 blocks ==20147== ==20147== For counts of detected and suppressed errors, rerun with: -v ==20147== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 3 from 3) ---------- messages: 12096 priority: normal status: open substatus: open title: libavformat leaks memory for files with too many streams type: bug ________________________________________________ FFmpeg issue tracker <[email protected]> <https://roundup.ffmpeg.org/issue2261> ________________________________________________
