<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: [Live-devel] (no subject)</title></head><body>
<blockquote type="cite" cite><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.
There are two memory leaks here.I write my programs following the
test***streamer and free the memory as the following:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (sessionState.sink != NULL)
sessionState.sink-&gt;stopPlaying();<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Medium::close(sessionState.rtcpInstance);<x-tab>&nbsp;&nbsp;
</x-tab><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Medium::close(sessionState.sink);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Medium::close(sessionState.source);<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Medium::close(sms);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Medium::close(rtspServer);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete sessionState.rtpGroupsock;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete sessionState.rtcpGroupsock;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(scheduler) delete
scheduler;</tt></blockquote>
<blockquote type="cite" cite><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(env) env-&gt;reclaim();</tt></blockquote>
<div><br></div>
<div>What you are doing is correct (although, if you are planning to
rerun the same code once again, you could reuse the same
&quot;UsageEnvironment&quot; and &quot;TaskScheduler&quot; objects;
i.e., you would not need to delete them).&nbsp; However, why don't you
just run your code in its own process (i.e., as a separate
application)?&nbsp; That way, all of the memory that you allocated
will automatically be reclaimed.</div>
<div><br></div>
<blockquote type="cite" cite><tt><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If I just create the
sinkĊAsourcĊArtspserver etc and don't startplaying,there will be no
memory leak.But if I add startplaying,after I close the server,there
will be two memory leaks :<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Detected memory leaks!<br>
Dumping objects -&gt;<br>
{594258} normal block at 0x003CC818, 32 bytes long.<br>
&nbsp;Data: &lt;l
G&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt; 6C 0F 47 00 00 00 00 00 00 00 00 00 00 00 00 00<br>
{594245} normal block at 0x00B49008, 32 bytes long.<br>
<br>
&nbsp;Data: &lt;l
G&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt; 6C 0F 47 00 00 00 00 00 00 00 00 00 00 00 00 00<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I am sorry that It may be difficult for
you to find out what resulted in this,but can you give me some
suggestion?</tt></blockquote>
<div><br></div>
<div>Does 64 bytes of extra memory get allocated each time you run
your code (i.e., in a loop), or does only 64 extra bytes get
allocated, no matter how many times you run your code?&nbsp; If it's
the latter case, then the problem doesn't seem serious.</div>
<div><br></div>
<div>However, you may be able to use &quot;valgrind&quot; (if you're
running on a Unix or Linux system) to help track down where this
memory allocation is coming from.</div>
<div><br></div>
<blockquote type="cite" cite><tt><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.Sometimes esapcically after I restart
teh server,when I start my server and use VLC to play th stream,the
server receives the &quot;DECRIBE&quot;ĊA&quot;SETUP&quot; and
&quot;PLAY&quot;command ok, but VLC just doesn't play the stream and
it tears down a few seconds later.I don't know the reason.I use
openRTSP and try to save the stream into a file.Things are the
same.The connection between the RTSP server and openRTSP is ok,but
openRTSP can't receive any data,so the file is empty. Then I restart
the server for one or more times,everything goes all right.</tt><br>
<tt></tt></blockquote>
<blockquote type="cite" cite><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
I rarely run into this problem with testprogs or
OnDemandRTSPServer.Therefore,there must be some reason that I have not
found in my program.Would you please help me?</tt></blockquote>
<div><br>
<br>
</div>
<div>Unfortunately not; I can (in general) help only with the
unmodified supplied code.</div>
<div><br></div>
<x-sigsep><pre>-- 
</pre></x-sigsep>
<div><br>
Ross Finlayson<br>
Live Networks, Inc.<br>
http://www.live555.com/</div>
</body>
</html>