Bug 1476750: Updated preferences controlling Rust SDP Parse behavior, r=dminor
Renamed the pref media.webrtc.rsdparsa_enabled to media.peerconnection.sdp.rust.compare
Added the pref media.peerconnection.sdp.rust.enabled
Added both to all.js
media.peerconnection.sdp.rust.compare: Controls whether the parsing result comparer for sipcc and rsdparsa runs or not.
media.peerconnection.sdp.rust.enabled: Controls whether the rsdparsa runs in parallel to the sipcc parser.
MozReview-Commit-ID: Ac5P7T2NBYD
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
@@ -63,17 +63,20 @@ JsepSessionImpl::Init()
MOZ_ASSERT(!mSessionId, "Init called more than once");
nsresult rv = SetupIds();
NS_ENSURE_SUCCESS(rv, rv);
SetupDefaultCodecs();
SetupDefaultRtpExtensions();
- mRunRustParser = Preferences::GetBool("media.webrtc.rsdparsa_enabled", false);
+ mRunRustParser = Preferences::GetBool("media.peerconnection.sdp.rust.enabled",
+ false);
+ mRunSdpComparer = Preferences::GetBool("media.peerconnection.sdp.rust.compare",
+ false);
return NS_OK;
}
nsresult
JsepSessionImpl::AddTransceiver(RefPtr<JsepTransceiver> transceiver)
{
mLastError.clear();
@@ -1284,18 +1287,20 @@ JsepSessionImpl::CopyPreviousMsid(const
}
nsresult
JsepSessionImpl::ParseSdp(const std::string& sdp, UniquePtr<Sdp>* parsedp)
{
UniquePtr<Sdp> parsed = mSipccParser.Parse(sdp);
if (mRunRustParser) {
UniquePtr<Sdp> rustParsed = mRsdparsaParser.Parse(sdp);
- ParsingResultComparer comparer;
- comparer.Compare(*rustParsed, *parsed, sdp);
+ if (mRunSdpComparer) {
+ ParsingResultComparer comparer;
+ comparer.Compare(*rustParsed, *parsed, sdp);
+ }
}
if (!parsed) {
std::string error = "Failed to parse SDP: ";
mSdpHelper.appendSdpParseErrors(mSipccParser.GetParseErrors(), &error);
JSEP_SET_ERROR(error);
return NS_ERROR_INVALID_ARG;
}
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.h
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.h
@@ -39,17 +39,18 @@ public:
mLocalIceIsRestarting(false),
mRemoteIsIceLite(false),
mRemoteIceIsRestarting(false),
mBundlePolicy(kBundleBalanced),
mSessionId(0),
mSessionVersion(0),
mUuidGen(std::move(uuidgen)),
mSdpHelper(&mLastError),
- mRunRustParser(false)
+ mRunRustParser(false),
+ mRunSdpComparer(false)
{
}
// Implement JsepSession methods.
virtual nsresult Init() override;
virtual nsresult SetIceCredentials(const std::string& ufrag,
const std::string& pwd) override;
@@ -288,14 +289,15 @@ private:
UniquePtr<Sdp> mPendingLocalDescription;
UniquePtr<Sdp> mPendingRemoteDescription;
PtrVector<JsepCodecDescription> mSupportedCodecs;
std::string mLastError;
SipccSdpParser mSipccParser;
SdpHelper mSdpHelper;
SsrcGenerator mSsrcGenerator;
bool mRunRustParser;
+ bool mRunSdpComparer;
RsdparsaSdpParser mRsdparsaParser;
};
} // namespace mozilla
#endif
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -416,16 +416,18 @@ pref("media.navigator.enabled", true);
pref("media.navigator.video.enabled", true);
pref("media.navigator.video.default_fps",30);
pref("media.navigator.video.use_remb", true);
pref("media.navigator.video.use_tmmbr", false);
pref("media.navigator.audio.use_fec", true);
pref("media.navigator.video.red_ulpfec_enabled", false);
pref("media.peerconnection.dtmf.enabled", true);
+pref("media.peerconnection.sdp.rust.enabled", false);
+pref("media.peerconnection.sdp.rust.compare", false);
pref("media.webrtc.debug.trace_mask", 0);
pref("media.webrtc.debug.multi_log", false);
pref("media.webrtc.debug.log_file", "");
pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB
pref("media.navigator.video.default_width",0); // adaptive default
pref("media.navigator.video.default_height",0); // adaptive default