Upon closer inspection, I hit the compile failure that Randell referred to in 
his review.

On Friday, May 15, 2015 at 7:25:21 PM UTC-4, Byron Campen wrote:
> I have a fix here: https://bugzilla.mozilla.org/show_bug.cgi?id=1165520
> 
> Best regards,
> Byron Campen
> 
> On 5/15/15 7:21 AM, Randell Jesup wrote:
> > On 5/14/2015 2:23 PM, [email protected] wrote:
> >> Hello,
> >>
> >> I've been doing a lot of research into this, but I figured I'd post 
> >> what I've discovered so far here to see if there's anybody who knows 
> >> more.
> >>
> >> I have a server that does not support rtcp pli (FreeSWITCH), that 
> >> ends up between two browser endpoints. When this server sends its 
> >> offer, the only rtcp-fb present is:
> >>
> >> a=rtcp-fb:99 ccm fir
> >>
> >> Firefox answers with:
> >>
> >> a=rtcp-fb:99 nack
> >> a=rtcp-fb:99 nack pli
> >> a=rtcp-fb:99 ccm fir
> >>
> >>
> >> When Firefox generates the offer, a similar situation occurs, except 
> >> VP8 is listed under 120, instead of 99. In the case detailed above, 
> >> I'm not sure if the server is supposed to reply with an updated offer 
> >> to settle the disagreement, but even so, Firefox moves on as if the 
> >> other side did agree to those 3 parameters.
> >
> > Ok, if we're answering that way we're wrong:  RFC 4585 4.2
> >
> >    When used in conjunction with the offer/answer model [8 
> > <http://tools.ietf.org/html/rfc4585#ref-8>], the offerer
> >    MAY present a set of these AVPF attributes to its peer.  The answerer
> >    MUST remove all attributes it does not understand as well as those it
> >    does not support in general or does not wish to use in this
> >    particular media session.  The answerer MUST NOT add feedback
> >    parameters to the media description and MUST NOT alter values of such
> >    parameters.  The answer is binding for the media session, and both
> >    offerer and answerer MUST only use feedback mechanisms negotiated in
> >    this way.  Both offerer and answerer MAY independently decide to send
> >    RTCP FB messages of only a subset of the negotiated feedback
> >    mechanisms, but they SHOULD react properly to all types of the
> >    negotiated FB messages when received.
> >
> >
> >> I have not taken traces to identify if this occurs in the other 
> >> direction as well (since the sdp is inconclusive about it), but it's 
> >> possible.
> >
> > Hmmm.  We do look at the local SDP to set the recovery type, so if our 
> > answer has the wrong options, then we'll set up the channel using 
> > those.  In WebrtcVideoConduit::ConfigureRecvMediaCodecs():
> >
> >     // Check for the keyframe request type: PLI is preferred over FIR, 
> > and FIR is preferred over none.
> >     if (codecConfigList[i]->RtcpFbNackIsSet("pli"))
> >     {
> >       kf_request = webrtc::kViEKeyFrameRequestPliRtcp;
> >     } else if(kf_request == webrtc::kViEKeyFrameRequestNone &&
> >               codecConfigList[i]->RtcpFbCcmIsSet("fir"))
> >     {
> >       kf_request = webrtc::kViEKeyFrameRequestFirRtcp;
> >     }
> >     // Check whether NACK is requested
> >     if(codecConfigList[i]->RtcpFbNackIsSet(""))
> >     {
> >       use_nack_basic = true;
> >     }
> >
> >
> >> Once the call is established between browsers, video deteriorates 
> >> until the keyframe refresh. This was not happening in Firefox 37, so 
> >> it appears a change may have occurred to make Firefox more reliant 
> >> upon the rtcp pli in version 38. In the same situation, Chrome only 
> >> responds with 'ccm fir' and video keeps good quality throughout.
> >
> > We did a major rewrite of the negotiation code in 37, and in 38 added 
> > multistream and bundle (and a lot of fixes for things); so it's 
> > certainly possible there was a regression in 38.  Did 37 (or 36) 
> > answer in the same way to a "ccm fir"-only offer?
> >
> >>
> >> There is (untested) code in FreeSWITCH for rtcp plis, but it was 
> >> commented out later when it caused other video issues (fast source 
> >> switches, as seen in conferences, would not work well). That was also 
> >> a Firefox only issue, because Firefox always sent rtcp pli requests, 
> >> where as Chrome could negotiate without it. The plis were, and still 
> >> are, just not responded to by FreeSWITCH, but I believe it is now 
> >> causing the deterioration.
> >
> >> I'm not sure if rtcp pli is a necessity for all WebRTC endpoints at 
> >> this point, and if so, I'll have to look into getting that working in 
> >> FreeSWITCH. In terms of Firefox, shouldn't it take the rtcp-fb params 
> >> of the offer into account when generating its answer?
> >
> > draft-ietf-rtcweb-rtp-usage-23: 
> > (http://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage-23) says you 
> > really should support PLI:
> >
> > 5.1.1
> >    ... WebRTC Endpoints that are sending media
> >    MUST understand and react to FIR feedback messages they receive,
> >    since this greatly improves the user experience when using
> >    centralised mixer-based conferencing.  Support for sending FIR
> >    messages is OPTIONAL.
> >
> > 5.1.2
> >    ... WebRTC Endpoints that are sending media MUST understand
> >    and react to PLI feedback messages as a loss tolerance mechanism.
> >    Receivers MAY send PLI messages.
> >
> > Note: those are separate from the issue of SDP & negotiation, but it 
> > implies you should not reject PLI and clearly must process them if 
> > received.  It also implies you should agree to PLI in the SDP.
> >

_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media

Reply via email to