[FFmpeg-trac] #3938(ffprobe:new): avformat_find_stream_info leaks memory

FFmpeg trac at avcodec.org
Wed Sep 10 08:15:44 CEST 2014


#3938: avformat_find_stream_info leaks memory
---------------------------------+--------------------------------------
             Reporter:  tuukka   |                     Type:  defect
               Status:  new      |                 Priority:  minor
            Component:  ffprobe  |                  Version:  git-master
             Keywords:  leak     |               Blocked By:
             Blocking:           |  Reproduced by developer:  0
Analyzed by developer:  0        |
---------------------------------+--------------------------------------
 When using avformat_find_stream_info there is small memory leak. Allocated
 mutex ain't never released. This very smalla issue since memory lost is
 about 40 bytes. Tested with 2.2.7 and GIT same both.
 Valgrind command was:
 {{{
 valgrind --leak-check=full --show-reachable=yes ./ffprobe
 /some/where/over/the/rainbow/Screenatorium_-_05_-_The_Answer_Lies.mp3
 }}}
 File used is from Jamendo (https://www.jamendo.com/en/list/a16574/blue-
 morning-ep).
 Valgrind output is
 {{{
 ==26165== Memcheck, a memory error detector
 ==26165== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
 ==26165== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright
 info
 ==26165== Command: ffprobe Screenatorium_-_05_-_The_Answer_Lies.mp3
 ==26165==
 ffprobe version N-66222-g1b5ccae Copyright (c) 2007-2014 the FFmpeg
 developers
   built on Sep 10 2014 08:52:36 with gcc 4.7 (SUSE Linux)
   configuration: --prefix=/some/where/over/the/rainbow/ffmpeg-git-install
 --enable-shared --disable-static --enable-debug --disable-stripping
 --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads
 --enable-avfilter --enable-libpulse --enable-libvpx --enable-libopus
 --enable-libass --enable-libx265 --enable-libmp3lame --enable-libvorbis
 --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264
 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-
 librtmp --enable-libfreetype --enable-avresample --enable-libvo-aacenc
 --disable-indev=jack
   libavutil      54.  7.100 / 54.  7.100
   libavcodec     56.  1.100 / 56.  1.100
   libavformat    56.  4.101 / 56.  4.101
   libavdevice    56.  0.100 / 56.  0.100
   libavfilter     5.  1.100 /  5.  1.100
   libavresample   2.  1.  0 /  2.  1.  0
   libswscale      3.  0.100 /  3.  0.100
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  0.100 / 53.  0.100
 Input #0, mp3, from 'Screenatorium_-_05_-_The_Answer_Lies.mp3':
   Metadata:
     title           : 05 - The Answer Lies
     artist          : Screenatorium
     album           : Blue Morning EP
     date            : 2007
     genre           : (255)
     publisher       : Jamendo
     copyright       : 2008-01-07T16:09:03+01:00 Screenatorium. Licensed to
 the public under http://creativecommons.org/licenses/by-nc-sa/3.0/ verify
 at http://www.jamendo.comalbum/16574/
     encoded_by      : Jamendo : http://www.jamendo.com | LAME
     TDTG            : 2012-01-12T04:49:33
   Duration: 00:04:12.03, start: 0.025056, bitrate: 194 kb/s
     Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 193 kb/s
     Metadata:
       encoder         : LAME3.98r
     Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg), 400x400 [SAR 72:72
 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
     Metadata:
       title           :
       comment         : Cover (front)
 ==26165==
 ==26165== HEAP SUMMARY:
 ==26165==     in use at exit: 80 bytes in 2 blocks
 ==26165==   total heap usage: 1,915 allocs, 1,913 frees, 1,410,194 bytes
 allocated
 ==26165==
 ==26165== 40 bytes in 1 blocks are still reachable in loss record 1 of 2
 ==26165==    at 0x4C29D96: memalign (in /usr/lib64/valgrind
 /vgpreload_memcheck-amd64-linux.so)
 ==26165==    by 0x4C29E87: posix_memalign (in /usr/lib64/valgrind
 /vgpreload_memcheck-amd64-linux.so)
 ==26165==    by 0x73016A9: av_malloc (mem.c:95)
 ==26165==    by 0x5D19719: default_lockmgr_cb (utils.c:80)
 ==26165==    by 0x5D1FF9F: avpriv_lock_avformat (utils.c:3475)
 ==26165==    by 0x5460DA8: ff_tls_init (network.c:71)
 ==26165==    by 0x54B9A7E: avformat_network_init (utils.c:4036)
 ==26165==    by 0x405410: main (ffprobe.c:2971)
 ==26165==
 ==26165== 40 bytes in 1 blocks are still reachable in loss record 2 of 2
 ==26165==    at 0x4C29D96: memalign (in /usr/lib64/valgrind
 /vgpreload_memcheck-amd64-linux.so)
 ==26165==    by 0x4C29E87: posix_memalign (in /usr/lib64/valgrind
 /vgpreload_memcheck-amd64-linux.so)
 ==26165==    by 0x73016A9: av_malloc (mem.c:95)
 ==26165==    by 0x5D19719: default_lockmgr_cb (utils.c:80)
 ==26165==    by 0x5D1FEAD: ff_lock_avcodec (utils.c:3443)
 ==26165==    by 0x5D201B0: avcodec_open2 (utils.c:1305)
 ==26165==    by 0x54B5E5A: avformat_find_stream_info (utils.c:3014)
 ==26165==    by 0x40591C: main (ffprobe.c:2374)
 ==26165==
 ==26165== LEAK SUMMARY:
 ==26165==    definitely lost: 0 bytes in 0 blocks
 ==26165==    indirectly lost: 0 bytes in 0 blocks
 ==26165==      possibly lost: 0 bytes in 0 blocks
 ==26165==    still reachable: 80 bytes in 2 blocks
 ==26165==         suppressed: 0 bytes in 0 blocks
 ==26165==
 ==26165== For counts of detected and suppressed errors, rerun with: -v
 ==26165== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3938>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list