<!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] Take input from a live source
instead of</title></head><body>
<blockquote type="cite" cite><font face="Verdana" size="-1">But at the
same time on transmiting a RTP packet,I need to capture a&nbsp; frame
into the buffers from the live souce(e.g,such like a webcamera).Does
it need mutithread programming?</font></blockquote>
<div><br></div>
<div>No.&nbsp; You can do this, within a single event loop, with a
chain of three objects:</div>
<div><br></div>
<div>FrameCapture =&gt; Encoder =&gt; RTP_Sink</div>
<div>where:</div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>-
&quot;FrameCapture&quot; is an instance of a new class (that you would
write) that subclasses &quot;FramedSource&quot;.&nbsp; You should look
at the &quot;DeviceSource&quot; code as a model for how you might do
this.</div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>-
&quot;Encoder&quot; is an instance of a new class (that you would
write) that subclasses &quot;FramedFilter&quot;.&nbsp; It would
compress each frame using your chosen codec.</div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>-
&quot;RTP_Sink&quot; is an instance of the appropriate subclass of
&quot;RTPSink&quot; (depending on the codec).</div>
<div><br></div>
<div>You would begin the streaming by calling</div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab>RTP_Sink-&gt;startPlaying(Encoder, ...);</div>
<div>and then</div>
<div><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab>env-&gt;taskScheduler().doEventLoop();</div>
<div>to start the event loop.</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>