[Live-devel] what if MultiFramedRTPSource::doGetNextFrame1 get a multiframed packet?

Ross Finlayson finlayson at live555.com
Mon Sep 15 21:25:20 PDT 2008


At 07:59 AM 9/15/2008, you wrote:
>but what if the RTP payload which cached in buffered packet is a 
>multiframed packet?In that case,what we get from 
>"MultiFramedRTPSource::doGetNextFrame1" will be more than one frames

That's OK.  However, not all of these frames will be delivered to the 
reading object at once.  Instead, only one frame will be delivered at 
a time.  This is implemented by the virtual function 
"nextEnclosedFrameSize()", which calculates the size of each frame 
within the packet.

>,for example,we received a RTP packet which contain 3 MPEG4ES video 
>frames before and save it to the buffered packet,then how to pick 
>out the single frames and their config information like 
>timestamp,length or else from this multiframed data?As I know,both 
>class MPEG4ESVideoRTPSource and MPEG4GenericRTPSource have not been 
>completed,do they need something like multiframe split as in last question?

"MPEG4GenericRTPSource" implements multiple frames per 
packet  (except currently for interleaving); note the function 
"MPEG4GenericBufferedPacket::nextEnclosedFrameSize()".

However, you're correct that "MPEG4ESVideoRTPSource" currently does 
not implement multiple frames per packet (it currently does not 
reimplement the "nextEnclosedFrameSize()" virtual function).


	Ross Finlayson
	Live Networks, Inc. (LIVE555.COM)
	<http://www.live555.com/>



More information about the live-devel mailing list