<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>How do I get the data from the lower levels..... Another DoGetNextFrame question</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi All,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">First, I am very grateful for this mailing list and the help it gives. I will try to make sure I can help support the community for this wonderful tool, as much as I can.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">This is a question about how to get the data from the lower layer software, so I can pass it to a decoder later in a pipeline. I have an Live555 client application that is receiving MPEG4 data from an RTP source. I am using a file sink</FONT></P>

<P><FONT SIZE=2 FACE="Arial">to verify that the data is being received correctly. This works. What I really want to do is to receive the MPEG4 (or H.264) data AFTER it is reassembled from the incoming RTP packets.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">I have my poll loop up and running, but am terribly confused as what to do to get the data. I don't understand if doGetNextFrame is for the incoming RTP packets, or for the processed sink packets.</FONT></P>
<BR>

<P><FONT SIZE=2 FACE="Arial">I didn't understand the answer to:</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&gt;Is there maybe a way to directly schedule a call to</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&gt;*doGetNextFrame()* in the event loop since this is not a static </FONT>

<BR><FONT SIZE=2 FACE="Courier New">&gt;function or what would be the alternative</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">The alternative is to write a static member function that then calls &quot;doGetNextFrame()&quot;, and have &quot;scheduleDelayedTask()&quot; arrange to call the static member function.&nbsp; There are several examples of this in the code already.</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">Also, as I noted last time, you should not call &quot;usleep(10)&quot;; instead, pass 10 as the (delay) parameter to &quot;scheduleDelayedTask()&quot;.</FONT></P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">The first note I have is that all the code in the playCommon.hh, and all the samples in testProgs do not use any client data. You have a checkForPacketArrival(void * /*clientData*/) in which no one seems interested</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">In the returned data. For example the call to it (at the end of startPlayingStreams) is:&nbsp;&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp; // Watch for incoming packets (if desired):</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp; checkForPacketArrival(NULL);</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">If I had multiple sources, how could I ever tell which stream it was. By it's name it appears to be an INCOMING packet.</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Do I have to rewrite a sink, like MPEG4ESVideoRTPSink, or H264VideoRTPSink&nbsp; to get the processed packets?</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">I don't think so. I think I am really to implement the callback for the fAfterGettingFunc for the FramedSource, but I have no idea how to do this.</FONT></P>
<BR>

<P><FONT SIZE=2 FACE="Arial">Again, Thank you very much, Rusty</FONT>
</P>


<BR>
- ------------------------------------------------------------------------------<BR>
Confidentiality Notice: The information contained in this transmission is legally privileged and confidential, intended only for the use of the individual(s) or entities named above. This email and any files transmitted with it are the property of Pelco. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any review, disclosure, copying, distribution, retention, or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you receive this communication in error, please notify us immediately by telephone call to +1-559-292-1981 or forward the e-mail to administrator@pelco.com and then permanently delete the e-mail and destroy all soft and hard copies of the message and any attachments. Thank you for your cooperation. <BR>
- ------------------------------------------------------------------------------<BR>
</BODY>
</HTML>