[Live-devel] How do I get the data from the lower levels..... Another DoGetNextFrame question

Waters, Ralph rwaters at pelco.com
Mon Nov 17 19:27:47 PST 2008


Hi All,

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.
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
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.
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.


I didn't understand the answer to:

>Is there maybe a way to directly schedule a call to
>*doGetNextFrame()* in the event loop since this is not a static 
>function or what would be the alternative

The alternative is to write a static member function that then calls
"doGetNextFrame()", and have "scheduleDelayedTask()" arrange to call the
static member function.  There are several examples of this in the code
already.

Also, as I noted last time, you should not call "usleep(10)"; instead,
pass 10 as the (delay) parameter to "scheduleDelayedTask()".


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
In the returned data. For example the call to it (at the end of
startPlayingStreams) is:   
  // Watch for incoming packets (if desired):
  checkForPacketArrival(NULL);

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.

Do I have to rewrite a sink, like MPEG4ESVideoRTPSink, or
H264VideoRTPSink  to get the processed packets?

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.


Again, Thank you very much, Rusty


- ------------------------------------------------------------------------------
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 at 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. 
- ------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20081117/b9704f61/attachment-0001.html>


More information about the live-devel mailing list