<html><head><base href="x-msg://17923/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; 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; font-size: medium; "><div class="hmmessage" style="font-size: 10pt; font-family: Tahoma; "><div dir="ltr">We seem to have occasional frame loss when connecting to an Aviglion camera, streaming H264 using RTP over RTSP. We occasionally see blurring in the video. After some inspection we see that sometimes a H264 key frame is missing. Taking a wireshark trace shows it's not a camera problem, the key frame is transmitted and complete ( all RTP timestamps are present up till the frame with the marker bit set ), so livemedia should not throw it away.<br></div></div></span></blockquote><div><br></div>I suspect that what's happening here is that the buffer that your client is using (i.e., the buffer used by the object that's receiving from the "RTPSource" object) is too small for some of your H.264 key frames.  If this is the case, then even though the RTP reception code is receiving all of the frame data OK (because you're receiving RTP-over-RTSP), it has to truncate the frame (i.e., throw away some data at the end of the frame), because the buffer that it's reading into is too small.</div><div><br></div><div>You can verify this by looking at the point in your client code where you call "getNextFrame()" on the "MediaSubsession" 'readSource()'.  When you do this, you give "getNextFrame()" an 'after getting' callback function.  When this function gets called, note the "numTruncatedBytes" parameter.  If - as I suspect - your buffer size (i.e., the size of the buffer that you gave to "getNextFrame()") is too small, then the "numTruncatedBytes" parameter will be >0.</div><br><br><div apple-content-edited="true">
<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; font-size: medium; "><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; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>