New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for abs-send-time - closes #1081 #1084
Conversation
Thanks! When can we expect a new NuGet version released? |
Thanks a lot for this PR. |
The It will be added to every RTP packet that is send from SIPSorcery sender, in our example it happens when we send Video: rtcPeerConnection.SendVideo(rtpDuration, sample) It helps the receiver (in our case web browser) calculate REMB properly, and then on SIPSorcery sender side we can subscribe to REMB events: let onReceiveReport: Action<Net.IPEndPoint, SDPMediaTypesEnum, RTCPCompoundPacket> =
Action<_, _, _>(fun _ _ packet ->
if not (isNull packet.Feedback) && not (isNull packet.Feedback.Header) then
let feedback = packet.Feedback
let header = packet.Feedback.Header
match header.PacketType, header.PayloadFeedbackMessageType with
| RTCPReportTypesEnum.PSFB, PSFBFeedbackTypesEnum.AFB ->
let exponent = feedback.BitrateExp
let mantissa = feedback.BitrateMantissa
// This is what REMB tells us the maximum bitrate should be
let rembMaxBitrateInBitsPerSecond = pown 2u (int exponent) * mantissa
onREMB.Trigger rembMaxBitrateInBitsPerSecond
| RTCPReportTypesEnum.PSFB, PSFBFeedbackTypesEnum.PLI -> onPLI.Trigger()
| _ -> ())
...
rtcPeerConnection.add_OnReceiveReport onReceiveReport |
a=extmap:
http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time to SDP extension headersa=rtcp-fb goog-remb
for all media tracks to SDPATTRIBUE
in one of the constscloses #1081