[Live-devel] FramedFilter Performance & Questions

Ross Finlayson finlayson at live555.com
Wed Jun 27 06:54:23 PDT 2007


>>No.  Assuming that your "afterGettingFrame()" function was passed 
>>as a parameter to "getNextFrame()", then it will be called by 
>>"FramedSource::afterGetting()" (which your "doGetNextFrame()" 
>>implementation should have called once it completed delivery of 
>>incoming data).
>>
>So is my code correct? If the frame is not completely decodable, I 
>call getNextFrame() again (on MPEG1or2VideoRTPSource). As I said, 
>sometimes (irregular) there are ~10 to 20ms delay between 
>consecutive calls of afterGettingFrame(). Sometimes the 
>afterGettingFrame() function is called twice even if the first one 
>has not come to an end. How can that be? Could you please have a 
>look at the code?

In general I don't have time to examine people's custom code in 
detail.  (But Remember, You Have Complete Source Code.)  However, in 
your case, you need to look at the code for whatever object your 
"Transcoder" object is reading *from* - i.e., the 'upstream' data 
source for your "Transcoder".  It's this 'upstream' object that is 
causing your Transcoder's "afterGettingFrame" function to be called 
(when your 'upstream' object calls "FramedSource::afterGetting()").


>After that I have the MPEG4VideoStreamDiscreteFramer (without that, 
>Transcoder::doGetNextFrame() isn't even called... why is that btw?

This is quite clear if you look at the code for "MPEG4VideoRTPSink". 
Its upstream object *must* be a "MPEG4VideoStreamFramer" (or a 
subclass).
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list