<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class="">Can I confirm that this shouldn’t interact with the file sink buffer sizes as they effectively receive decoded and depacketised frames?</span></div></div></div></blockquote><div><br class=""></div>They’re different buffers, with different purposes.</div><div><br class=""></div><div>A single RTP packet may contain one or more ‘frames’ (for H.264 video: ‘NAL units’).  Or a single very large ‘frame’ (again, for H.264 video: ‘NAL unit’) may be fragmented over more than one RTP packet.  This is true, regardless of the size of the RTP packets.</div><div><br class=""></div><div>In each case, should an input frame (whether it was contained within a RTP packet along with other frames, or was fragmented over multiple RTP packets) exceed the size of the buffer used by the downstream ‘sink’ object (e.g., a “FileSink”), then the data will be truncated (as indicated by the “numTruncatedBytes” parameter in the ‘after getting’ function.</div><div><br class=""></div><div>In other words, the “FileSink” buffer size should be at least as large as the largest expected frame (or H.264 ‘NAL unit’).  This has nothing to do with RTP packet size.</div><div><br class=""></div><div><br class=""></div><div>As an aside, I should note that using a very large RTP/UDP/IP packet size (perhaps signaled by the RTSP “Blocksize:” header) is a good strategy for transporting very large video ‘key frames’ - but ONLY IF these very large IP packet sizes are supported all the way along the path from server to client. If any part of the path between the server and client goes over the public Internet, or over any LAN whose MTU is smaller than the IP packet size, then you’ll get fragmentation at the IP level, which is just as bad as fragmenting the ‘key frame’ over multiple RTP packets: If *any* packet gets lost, then the whole ‘key frame’ will be lost.</div><div><br class=""></div><div>In general, you can’t count on an MTU larger than 1500 - which is what our code assumes, by default, when sending packets.</div><br class=""><br class=""><div apple-content-edited="true" class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br class="">Live Networks, Inc.<br class=""><a href="http://www.live555.com/" class="">http://www.live555.com/</a></span></span>
</div>
<br class=""></body></html>