[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