[mythtv-commits] Ticket #393: Memory leak in mythtranscode

MythTV mythtv at cvs.mythtv.org
Thu Sep 29 03:53:30 UTC 2005


#393: Memory leak in mythtranscode
------------------------------+---------------------------------------------
 Reporter:  kc0abd at yahoo.com  |       Owner:  ijr
     Type:  defect            |      Status:  new
 Priority:  major             |   Milestone:     
Component:  mythtv            |     Version:     
 Severity:  medium            |  ------------------------------+---------------------------------------------
 mythtranscode memory usage continue to grow untill it reaches 2 gbytes
 when the following commands are used:

  mythtranscode --chanid 1007 --starttime 2005-09-21T20:00:00 --profile
 autodetect --fifodir . --showprogress --verbose all > transcode.log &

 ffmpeg -f u16le -ar 2 -i audout -f rawvideo -s 640x480 -r 29.97 -i vidout
 -vcodec mpeg4 -b 2000 -acodec mp3 -ab 128 out.avi

 the transcode.log file contains the following:

 2005-09-28 09:13:23.203 allocating additonal buffer for : audio(23126)
 2005-09-28 09:13:23.208 allocating additonal buffer for : audio(23127)
 2005-09-28 09:13:23.228 allocating additonal buffer for : audio(23128)
 2005-09-28 09:13:23.378 allocating additonal buffer for : audio(23129)
 2005-09-28 09:13:23.524 allocating additonal buffer for : audio(23130)
 2005-09-28 09:13:23.530 allocating additonal buffer for : audio(23131)
 2005-09-28 09:13:23.549 allocating additonal buffer for : audio(23132)
 2005-09-28 09:13:23.592 Processed: 103563 of 107790 frames(3455 seconds)
 2005-09-28 09:13:23.593 Video timecode = 103560
 2005-09-28 09:13:23.712 allocating additonal buffer for : audio(23133)
 2005-09-28 09:13:23.730 allocating additonal buffer for : audio(23134)
 2005-09-28 09:13:23.736 allocating additonal buffer for : audio(23135)
 2005-09-28 09:13:23.911 allocating additonal buffer for : audio(23136)
 2005-09-28 09:13:24.066 allocating additonal buffer for : audio(23137)
 2005-09-28 09:13:24.072 allocating additonal buffer for : audio(23138)
 2005-09-28 09:13:24.090 Video timecode = 103590
 2005-09-28 09:13:24.095 allocating additonal buffer for : audio(23139)
 2005-09-28 09:13:24.227 allocating additonal buffer for : audio(23140)
 2005-09-28 09:13:24.250 allocating additonal buffer for : audio(23141)
 2005-09-28 09:13:24.397 allocating additonal buffer for : audio(23142)
 2005-09-28 09:13:24.403 allocating additonal buffer for : audio(23143)
 2005-09-28 09:13:24.422 allocating additonal buffer for : audio(23144)
 2005-09-28 09:13:24.571 allocating additonal buffer for : audio(23145)
 2005-09-28 09:13:24.589 Video timecode = 103620
 2005-09-28 09:13:24.702 allocating additonal buffer for : audio(23146)
 2005-09-28 09:13:24.723 allocating additonal buffer for : audio(23147)
 2005-09-28 09:13:24.729 allocating additonal buffer for : audio(23148)
 2005-09-28 09:13:24.883 allocating additonal buffer for : audio(23149)
 2005-09-28 09:13:25.077 allocating additonal buffer for : audio(23150)
 2005-09-28 09:13:25.083 allocating additonal buffer for : audio(23151)
 2005-09-28 09:13:25.103 Video timecode = 103650
 2005-09-28 09:13:25.109 allocating additonal buffer for : audio(23152)
 2005-09-28 09:13:25.282 allocating additonal buffer for : audio(23153)
 2005-09-28 09:13:25.303 allocating additonal buffer for : audio(23154)
 abort

 I have traced the memory leak to the following:

 fifowrite.cpp

 FIFOWrite::FIFOWrite

 allocate memory in the following and is not being released

         if (blocking)
         {
             struct fifo_buf *tmpfifo;
             tmpfifo = fb_inptr[id]->next;
             fb_inptr[id]->next = new struct fifo_buf;
             fb_inptr[id]->next->data = new unsigned char[maxblksize[id]];
             fb_inptr[id]->next->next = tmpfifo;
             QString msg = QString("allocating additonal buffer for :
 %1(%2)")
                           .arg(fbdesc[id]).arg(++fbcount[id]);
             VERBOSE(VB_FILE, msg);
         }

-- 
Ticket URL: <http://cvs.mythtv.org/trac/ticket/393>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list