On Thu, Nov 19, 2009 at 2:31 AM, Ross Finlayson <span dir="ltr">&lt;<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
And if the server can detect that the network is to slow or congested to send all of the requested data (by detecting that the network buffers in the OS are full) make an attempt to intelligently send enough data to provide a working, all be it degraded, experience to the client rather than just randomly dropping parts of frames so that nothing may work.<br>

</blockquote>
<br></div>
Yes, at some point it would be nice to support the IETF&#39;s RTP/AVPF profile, and an associated feedback-based retransmission (and/or media rescaling) scheme.  But this, of course, is on top of UDP. Trying to implement a loss-mitigation scheme over TCP is retarded.</blockquote>
<div><br>I agree.<br><br>Furthermore, basically the patch implements a &quot;retransmit&quot; on the RTP stack level, which is wholly incompatible with any RTP specification I know of.  RTP uses application level framing, which means some of the behaviors are specifically not defined, and should be implemented by the application level.  If my video stream is live, &quot;retransmitting&quot; is likely a waste of time because the data is already obsolete.  And mostly likely I can only start a stream on keyframe boundaries, so retransmitting some intermediate frame is also a waste of time if there&#39;s already been previous loss. (hence &quot;application level framing&quot;--only the calling application knows what sort of loss mitigation plan it should implement)<br>
<br>Question: does Live555 provide a feedback mechanisms for loss, jitter, etc. (basically some way of getting the RTCP stats) so I can tweak the encoder in real-time to fit network conditions? <br></div></div>