<div dir="ltr">I read the source code again,yes,"MPEG4GenericRTPSource" indeed implements multiple frames per packet by reimplementation of the virtual function "MPEG4GenericBufferedPacket::nextEnclosedFrameSize()",but it had not update the "fPresentationTime" after the first received frame,since "frameDurationInMicroseconds" is always 0.In that case,from a multiframed packet,we will get several frames with the same timestamp,is it a bug?<br>
<br><div class="gmail_quote">2008/9/16 Ross Finlayson <span dir="ltr"><<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">At 07:59 AM 9/15/2008, you wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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<br>
</blockquote>
<br></div>
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.<div class="Ih2E3d">
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
,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?<br>
</blockquote>
<br></div>
"MPEG4GenericRTPSource" implements multiple frames per packet (except currently for interleaving); note the function "MPEG4GenericBufferedPacket::nextEnclosedFrameSize()".<br>
<br>
However, you're correct that "MPEG4ESVideoRTPSource" currently does not implement multiple frames per packet (it currently does not reimplement the "nextEnclosedFrameSize()" virtual function).<br>
<br>
<br>
Ross Finlayson<br>
Live Networks, Inc. (<a href="http://LIVE555.COM" target="_blank">LIVE555.COM</a>)<br>
<<a href="http://www.live555.com/" target="_blank">http://www.live555.com/</a>><br>
<br>
_______________________________________________<br>
live-devel mailing list<br>
<a href="mailto:live-devel@lists.live555.com" target="_blank">live-devel@lists.live555.com</a><br>
<a href="http://lists.live555.com/mailman/listinfo/live-devel" target="_blank">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
</blockquote></div><br></div>