[FFmpeg-trac] #144(undetermined:new): ffmpeg 0.7c FFPLAY using CODEC_ID_H264 HUGE MEMORY LEAKS (1MB/s)

FFmpeg trac at avcodec.org
Sat Apr 30 13:31:00 CEST 2011


#144: ffmpeg 0.7c FFPLAY using CODEC_ID_H264  HUGE MEMORY LEAKS (1MB/s)
-------------------------------+-----------------------
 Reporter:  alexandru_mg3      |        Type:  defect
   Status:  new                |    Priority:  critical
Component:  undetermined       |     Version:  0.7-rc1
 Keywords:  h264 memory leaks  |  Blocked By:
 Blocking:                     |  Reproduced:  0
 Analyzed:  0                  |
-------------------------------+-----------------------
 1. I'm using ffmpeg 0.7c (your mt integrated version) taht I built with
 mingw32

 2. I run an h264 stream (a TV Channel) with ffplay on Windows , a full HD
 one (1920x1080), from DREAMBOX

 the stream video-codec is :
     h264 - mpeg4 avc (part 10) (h264) 1920x1080 frame rate 50
 the audio codec is:
   a52 audio (aca ac3) (a52)  7.1

 (I confirm this information runing also the stream with vlc too)

 3.  Command line : ffplay <h264-stream-url>
 (I run also another HD TV Channel having the same memory leaks)

 4. BUG DESCRIPTION: during the playing, the memory quickly increased with
 aprox. 1MB/s, till the whole windows memory is exhausted after around
 10-15min

 4.  I put some debug trackings and comments in ffplay and compiling again,
 I saw that :
    a.  - the used codec is CODEC_ID_H264

    b.  - the place where additional memory is allocated is after each call
 to:
         "  len1 = avcodec_decode_video2(is->video_st->codec,
                                    frame, &got_picture,
                                    pkt);
         "
      Note: the pkt is always well deallocated in ffplay code
            and the frame is deallocated only once at the of the loop in
 ffplay code, as usual)

   c. The memory leaks don't appear when playing non-hd channels (so when
 using other codecs)

 4.  Viewing how huge is the memory leaks are (1MB/s) Seems that the
 AVFrame is set to some internal pictures that are never de-allocated

     h264 decode_frame...
         *pict = *(AVFrame*)h->next_output_pic;

     But this is only a supposition, of course, could well be some other
 buffers...

 5. Practically the h264 codec cannot be used in this case.
 and is the single way to play HD TV Channels due to the mt facility.

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


More information about the FFmpeg-trac mailing list