diff --git a/media/engine/internalencoderfactory.cc b/media/engine/internalencoderfactory.cc index e55ca91495..23c85cb956 100644 --- a/media/engine/internalencoderfactory.cc +++ b/media/engine/internalencoderfactory.cc @@ -51,10 +51,6 @@ InternalEncoderFactory::InternalEncoderFactory() { // we never use the actual value anywhere in our code however. // TODO(brandtr): Consider honouring this value in the sender and receiver. flexfec_codec.SetParam(kFlexfecFmtpRepairWindow, "10000000"); - flexfec_codec.AddFeedbackParam( - FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty)); - flexfec_codec.AddFeedbackParam( - FeedbackParam(kRtcpFbParamRemb, kParamValueEmpty)); supported_codecs_.push_back(flexfec_codec); } } diff --git a/media/engine/webrtcvideoengine.cc b/media/engine/webrtcvideoengine.cc index f5c6a2998e..9767aadbc2 100644 --- a/media/engine/webrtcvideoengine.cc +++ b/media/engine/webrtcvideoengine.cc @@ -192,12 +192,18 @@ bool IsFlexfecAdvertisedFieldTrialEnabled() { } void AddDefaultFeedbackParams(VideoCodec* codec) { - codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamCcm, kRtcpFbCcmParamFir)); - codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamNack, kParamValueEmpty)); - codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamNack, kRtcpFbNackParamPli)); + // Don't add any feedback params for RED and ULPFEC. + if (codec->name == kRedCodecName || codec->name == kUlpfecCodecName) + return; codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamRemb, kParamValueEmpty)); codec->AddFeedbackParam( FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty)); + // Don't add any more feedback params for FLEXFEC. + if (codec->name == kFlexfecCodecName) + return; + codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamCcm, kRtcpFbCcmParamFir)); + codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamNack, kParamValueEmpty)); + codec->AddFeedbackParam(FeedbackParam(kRtcpFbParamNack, kRtcpFbNackParamPli)); } static std::string CodecVectorToString(const std::vector& codecs) { @@ -515,10 +521,7 @@ std::vector AssignPayloadTypesAndAddAssociatedRtxCodecs( std::vector output_codecs; for (VideoCodec codec : input_codecs) { codec.id = payload_type; - if (codec.name != kRedCodecName && codec.name != kUlpfecCodecName && - codec.name != kFlexfecCodecName) { - AddDefaultFeedbackParams(&codec); - } + AddDefaultFeedbackParams(&codec); output_codecs.push_back(codec); // Increment payload type.